Java equals(“ [[a-zA-Z] +”)始终为false

时间:2018-11-29 08:22:36

标签: java

所以,我正在尝试创建仅在包含字母的情况下检查kinderCode(String)的东西。如果确实包含不是字母的字符,则需要要求用户为kinderCode提供一个新值,然后再次对其进行检查。这里的问题是while循环永远不会离开。条件始终返回false。

kinderCode = input.next();       
while (!(kinderCode.equals("[a-zA-Z]+"))) {
     System.out.println("Foute ingave! Kindercode?");
     kinderCode = input.next();
}

2 个答案:

答案 0 :(得分:6)

您需要使用.matches()

while (!(kinderCode.matches("[a-zA-Z]+"))) {

// rest of the code 
}
  

matches(String regex)

     

告诉此字符串是否匹配给定的正则表达式

.equals()用于比较字符串的相等性

答案 1 :(得分:0)

 Pattern pattern = Pattern.compile("[a-zA-Z]+");
 Matcher matcher = pattern.matcher(kinderCode);
 if (matcher.find()){
        return true;
   }
 return false;

将assertTrue或assertFalse用于条件匹配作为代码伦理。