Oppure

Loading
16/05/10 16:21
bububs
Il problema è come da titolo!! :rofl:
aaa
16/05/10 21:23
netarrow
Se sai che la stringa è scritta giusta, controlli se c'è la virgola/punto; no?

Se potrebbe anche essere formattata male, io farei prima un Integer.Parse con un try catch per controllare se va a buon fine la conversione di un intero, e poi di un Double.Parse per vedere se riesco a convertirlo in decimale.

Se nessuno dei due va a buon fine la stringa è scritta male e non può rappresentare un numero.
aaa
17/05/10 18:39
paoloricciuti
E perchè provare prima la conversione a intero? Semplicemente quella in double:
public static boolean isDecimalNumber(String num){
try{
Double.parseDouble(num);
return true;
}catch(Exception e){
return false;
}
}

aaa
17/05/10 18:41
netarrow
perchè sennò poi non avrebbe il numero convertito, ma solo un true false sul fatto che sia o non sia in quel formato

e poi isDecimalNumber potrebbe ritornare false anche se il numero non è ne decimale ne intero, ma in un formato che non rappresenta alcun numero
Ultima modifica effettuata da netarrow 17/05/10 18:42
aaa
17/05/10 20:34
paoloricciuti
Svusami, avevo letto male il titolo, avevo letto solo Controllare se una stringa è un numero decimale.

Allora la funzione cambia così:
/**
 * Controlla se una stringa è un double o un intero.
 * @return -1 se non è una stringa valida, 0 se è un int, 1 se è un double
 */
public static int isDoubleOrInt(String num){
try{
Integer.parseInt(num);
return 0;
}catch(Exception e){
try{
Double.parseDouble(num);
return 1;
}catch(Exception e){
return -1;
}
}
}

aaa
19/05/10 13:40
bububs
Grazie mille ad entrambi!!! :k::k:
aaa