2015-12-18 4 views
3

Мое требование состоит в том, чтобы пользователю не разрешалось вводить отрицательное число в моем приложении Java. Мне нужно проверить, пустое поле ввода или только положительное целое.Разрешить только положительное число ИЛИ пустое пространство

Что у меня есть

/^[\s\d]*$/ 
+0

могли бы вы предоставить путь вы восстановить данные? У меня подозрительное регулярное выражение - не лучший способ добиться этого. – miraclefoxx

ответ

0

Попробуйте это:

String str = "12 "; 
boolean matches = str.matches("[\\p{Digit}\\s]+"); 
System.out.println("matches = " + matches); 

И результат:

matches = true 
1

Это позволяет цифры (число) или без цифр вообще (пустой) /^\d*$/ без знаков, без точек.
Вместо этого регулярное выражение позволяет чередование цифр и пробелов.

0

Вы можете попробовать это:

String inField = "1245"; 
    Pattern p = Pattern.compile("^(\\d*|\\s*)$"); 
    boolean isCorrect = p.matcher(inField).matches(); 
    System.out.println(isCorrect); 

см http://ideone.com/hwj5iV

Смежные вопросы