Tôi đang xác thực tính năng nhập của người dùng từ biểu mẫu.Làm cách nào để phân tích cú pháp số nghiêm ngặt hơn so với NumberFormat trong Java?
Tôi phân tích cú pháp đầu vào với NumberFormat
, nhưng nó là điều ác và cho phép hầu hết mọi thứ. Có cách nào để phân tích cú pháp số nghiêm ngặt hơn không?
Ví dụ: Tôi muốn không cho phép ba đầu vào, cho một số nguyên, nhưng Numberformat
cho phép tất cả trong số họ:
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());
thế nào về chuyển đổi nó thành một chuỗi và sau đó lặp qua chuỗi và chỉ cho phép các ký tự "0" .. "9"?hoặc chỉ cần truy cập getIntegerInstance(); – ComputerSaysNo
@DorinDuminica: 'getIntegerInstance()' cho kết quả tương tự. – Jonas
tại sao không sử dụng 'Integer.parseInt (String)' –