Sto convalidando l'input dell'utente da un modulo.Come analizzare numeri più rigidi di quelli che NumberFormat fa in Java?
Analizzo l'input con NumberFormat
, ma è malvagio e consente quasi tutto. C'è un modo per analizzare il numero più rigoroso?
E.g. Vorrei non permettere a questi tre ingressi, per un intero, ma Numberformat
consentire a tutti di loro:
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setParseIntegerOnly(true);
Number numberA = nf.parse("99.731"); // 99 (not what the user expect)
Number numberB = nf.parse("99s.231"); // 99 (invalid)
Number numberC = nf.parse("9g9"); // 9 (invalid)
System.out.println(numberA.toString());
System.out.println(numberB.toString());
System.out.println(numberC.toString());
come su di convertirlo in una stringa e poi loop sulla stringa e consentire solo caratteri "0" .. "9"?oppure vai su getIntegerInstance(); – ComputerSaysNo
@DorinDuminica: 'getIntegerInstance()' fornisce lo stesso risultato. – Jonas
perché non usare 'Integer.parseInt (String)' –