我想让用户在TextField中输入他的名字,然后使用textfield.getText()
函数来获取他写的内容,但是我想要的是,如果他的名字包含数字,例如Bond007, of Bond,我想返回一条错误消息。
我一直在尝试contains函数,但是它不能正常工作,或者也许我还不知道如何使用它。
if(textfield.getText().contains("[0-9]+")== true) {
System.out.println("your name contains a number");
}
我只需要条件的帮助。
答案 0 :(得分:3)
String.contains()
不接受正则表达式。您可以使用String.matches()
并稍微更改正则表达式:
if(textfield.getText().matches(".*\\d+.*")) {
// ...
}
您的字符串中至少一位数字的条件是true
。
编辑:出于性能原因,最好使用(?s)\\D*\\d.*
作为正则表达式,例如 WiktorStribiżew在下面的评论中指出。