2013-07-05 7 views
1

Как проверить, содержит ли только текст TextField (DOT). TextField может содержать следующие ниже вещи ...Как проверить наличие только символа TextField (DOT)

.9 = > Valid 
9. = > Valid 
9.23 = >Valid 

Но если TextField содержит только (.), То пользователь должен быть выброшен сообщение об ошибке. Я не могу сделать Text.startsWith() или ни Text.contains(), поскольку оба могут потерпеть неудачу в других случаях.

ответ

4

Используйте это регулярное выражение

text.matches("\\d+|\\d*\\.\\d+|\\d+\\.\\d*") 
  • \\d+ всего совпадений
  • \\d*\\.\\d+ соответствует строкам, которые начинаются либо с точкой или цифрой и содержать точку
  • \\d+\\.\\d* Удачные строки, которые начинаются с цифры, содержат точку и любое количество цифр после того, как

Имейте в виду, что номера начиная с 0, также будет принято это выражение.

1

Вы можете просто использовать

text.equals(".") 

или принять пробельные во внимание,

text.trim().equals(".") 
1

Если вы также должны проверить, что в дополнение к точке вы также цифры, вы должны вероятно, написать пару регулярных выражений.

В вашем случае строка является действительным, если он соответствует следующим шаблонам:

\d+  // Digits without the dot 
\d*\.\d+ // Number with some digits after the dot 
\d+\.\d* // Number with some digits before the dot 
+1

Неправильное использование. Столица D (\ D) соответствует не цифрам. Это отрицательная форма \ d. – f1sh

+0

Вы правы. Я только что исправил его – mariosangiorgio

-1

вы можете просто использовать два метода

if(yourTextFieldName.getText().endsWith(".") && yourTExtFieldName.startsWith(".")) { 
    //write your code here 
} 
+1

Это соответствует чем-то вроде «.abc123». – f1sh

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