我希望用户输入一个字符串,如果该字符串与我的正则表达式不匹配,那么我希望输出一条消息,并且用户再次输入一个值。
问题是,即使字符串与正则表达式匹配,它也会将其视为不匹配。
我的正则表达式:
这应该等于 -Name, Name
[[A-Z][a-zA-Z]*,\s[A-Z][a-zA-Z]*]
My while
loop:
System.out.println("Enter the student's name in the following format - surname, forename: "); studentName = input.next();
while (!studentName.equals("[[A-Z][a-zA-Z]*,\\s[A-Z][a-zA-Z]*]")) {
System.out.println("try again");
studentName = input.next();
}
The equals
方法检查字符串等效性,而不是匹配正则表达式。
只需更换equals
with matches
。您还应该删除外部方括号。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)