Sprawdzam dane wejściowe użytkownika z formularza.Jak analizować liczby bardziej rygorystyczne niż to, co robi NumberFormat w Javie?
Analizuję dane wejściowe za pomocą NumberFormat
, ale jest to złe i pozwala na prawie wszystko. Czy istnieje sposób na parsowanie liczb bardziej rygorystycznych?
E.g. Chciałbym, aby nie pozwolić na te trzy wejścia, do liczby całkowitej, ale Numberformat
umożliwić wszystkie z nich:
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());
jak o przekształcenie go na sznurku, a następnie zapętlaj ciąg znaków i zezwalaj tylko na znaki "0" .. "9"?lub po prostu przejdź do getIntegerInstance(); – ComputerSaysNo
@DorinDuminica: 'getIntegerInstance()' daje taki sam wynik. – Jonas
dlaczego nie używać 'Integer.parseInt (String)' –