Eventuali duplicati:
Parsing numbers safely and locale-sensitivelyConvalida numeri decimali in modo locale sensibile in Java
Come posso convalidare stringhe contenenti numeri decimali in modo locale-sensibile? NumberFormat.parse consente troppo e Double.parseDouble funziona solo per le impostazioni locali in inglese. Ecco quello che ho provato:
public static void main(String[] args) throws ParseException {
Locale.setDefault(Locale.GERMAN);
NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.getDefault());
Number parsed = numberFormat.parse("4,5.6dfhf");
System.out.println("parsed = " + parsed); // prints 4.5 instead of throwing ParseException
double v = Double.parseDouble("3,3"); // throws NumberFormatException, although correct
}
Dovrebbe un'eccezione, se il locale è tedesco, e l'ingresso è '3.3' invece di' 3,3'? – jlordo
'Number parsed = numberFormat.parse (" 4.5.6dfhf ");' funziona anche e produce '456' ... Eurgh ... – assylias
jlordo: almeno dovrebbe accettare i numeri corretti ... – WannaKnow