我正在制作一个JOptionpane,用户可以在其中输入他的名字。所以它不能为空,也不能为数字

空的部分正在工作,但现在我必须找到数字部分的解决方案

如您在我的代码中看到的,我做了一个while循环来检查“ naam”是否不为空。现在,我需要找到一种方法来检查“ naam”是否不是数字。

String naam = JOptionPane.showInputDialog("Geef uw naam in: ");

while (naam.equals("")) {
   JOptionPane.showMessageDialog(null, "Geef een naam in", "Geef naam", JOptionPane.ERROR_MESSAGE);
   naam = JOptionPane.showInputDialog("Geef uw naam in: ");

最佳答案

您可以使用正则表达式检查它是否包含任何数字。 Java中的正则表达式“ \\ D”代表非数字,“ +”代表1或更大。因此,您可以将while循环更改为:

while (!naam.matches("\\D+"))


这将包括空的等号检查,因为您需要至少一个非数字来使其匹配。

10-04 13:06