使用Contains()函数如何知道一个字符串中是否有数字?

时间:2019-06-14 19:30:59

标签: java regex javafx

我想让用户在TextField中输入他的名字,然后使用textfield.getText()函数来获取他写的内容,但是我想要的是,如果他的名字包含数字,例如Bond007, of Bond,我想返回一条错误消息。

我一直在尝试contains函数,但是它不能正常工作,或者也许我还不知道如何使用它。

if(textfield.getText().contains("[0-9]+")== true) {
    System.out.println("your name contains a number");
}

我只需要条件的帮助。

1 个答案:

答案 0 :(得分:3)

String.contains()不接受正则表达式。您可以使用String.matches()并稍微更改正则表达式:

if(textfield.getText().matches(".*\\d+.*")) {
    // ...
}

您的字符串中至少一位数字的条件是true


编辑:出于性能原因,最好使用(?s)\\D*\\d.*作为正则表达式,例如 WiktorStribiżew在下面的评论中指出。