PDA

Visualizza la versione completa : [JAVA] Funzioni sulle stringhe


motogpdesmo16
06-01-2006, 11:35
amici avrei ancora bisogno del vostro aiuto.
Ho una stringa, da cui estraggo ogni volta una lettera.
Mi servirebbe sapere il valore ASCII a cui essa fa riferimento.
Dopo diverse ricerche sul forum, leggendo thread che avevano riscontrato problemi simili, sono riuscito ad arrivare a questo:

String aux=parola.trim().substring(0,1);
int num=Integer.parseInt(aux);
System.out.println(num);

E' corretta come operazione??No perchè ottengo degli errori in fase di esecuzione del programma proprio sul parseInt.
http://img371.imageshack.us/img371/2845/ex37fw.jpg

Ho provato a vedere sulle API per quanto riguarda Integer e sembra proprio che parseInt sia il metodo che faccia al mio caso ma non riesco a capire questa restrizione: The characters in the string must all be decimal digits.
Grazie dell'eventuale aiuto.

FelixR
06-01-2006, 11:47
char c=stringa.charAt(0);
int ascii=(int)c;
System.out.println("ASCII value: "+ascii);

motogpdesmo16
06-01-2006, 11:59
perfetto grazie mille.
Nel caso in cui dovessi fare l'estrazione di più di un carattere (cioè la substring è di lunghezza >1), devo comunque dichiarare char la variabile su cui poi vado ad eseguire le operazioni che mi hai indicato?

FelixR
06-01-2006, 12:09
si, se è una stringa basta fare un ciclo for

kuarl
06-01-2006, 12:24
int n = Integer.valueOf(tuaStringa).intValue();

motogpdesmo16
06-01-2006, 12:55
Originariamente inviato da kuarl
int n = Integer.valueOf(tuaStringa).intValue();

seguendo questa tua indicazione, mi da l'errore che ho inserito come immagine nel reply precedente.

kuarl
06-01-2006, 21:16
Originariamente inviato da motogpdesmo16
seguendo questa tua indicazione, mi da l'errore che ho inserito come immagine nel reply precedente.

quell'eccezzione te la da quando la stringa non contiene un numero in un formato digeribile da questa funzione. Devi inserire il tutto in un blocco try ... catch e catturare l'eccezzione NumberFormatException

Loading