Java 等于 ("[a-zA-Z]+")始终为 false

标签 java

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

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

最佳答案

您需要使用.matches()

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

// rest of the code 
}

matches(String regex)

Tells whether or not this string matches the given regular expression

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

关于Java 等于 ("[a-zA-Z]+")始终为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53534576/

相关文章:

java - 读取日志并将其保存到字符串

java - hadoop 2.3.0 源码构建错误

java - 在没有实例引用的情况下存储和访问类中的对象

java - 变量似乎未初始化

JAVA getConstructor 抛出 NoSuchMethodException

java - 如何同时收听多个按键输入

java - 忽略 Mockito 中测试方法内部的无效方法

获取mediaPlayer.getCurrentPosition时随机出现java.lang.illegalStateException

Java,数组到 ArrayList

java - 按升序对数组元素进行排序