java验证字符串输入
如何在Java中验证此字符串输入
Two letter followed by three digits and a letter. The last letter can only be B for Business Account or N for Non-Business Account
例如“JB213B”或“JB231N”
编辑:好的,我现在使用正则表达式,谢谢
虽然现在我提出了如何实际执行验证,但以下是我到目前为止所做的
System.out.println("Enter your reference");
String reference = keyboard.next();
String regex = "[A-Z]{2}[0-9]{3}[B|N]";
boolean match = reference.matches(regex);
while (!match)
{
System.out.println("That isn't a valid reference");
reference = keyboard.next();
match = reference.matches(regex);
}
# 1 楼答案
使用如下所示的正则表达式
# 2 楼答案
您可以使用正则表达式来实现这一点
在这种情况下,表达式将是
^[A-Z]{2}[0-9]{3}[B|N]$
This是
String
类的.matches()
方法的引用同样,您也可以使用
Pattern
类来查找匹配项This是这方面的参考用法:
性能比较:
“使用正则表达式”或“使用字符串比较”哪个更好
这个问题总是有争议的。但我发现,理解需求的复杂性在任何情况下都没有什么帮助
如果需要进行许多字符串比较,使用正则表达式可以跳过这些比较,那么我将使用正则表达式
但也应该考虑使用多个和/或复杂的正则表达式会对性能产生影响,因为正则表达式的评价也是一个繁琐且复杂的编译器程序(与字符串操作相比)。p>
另一方面,字符串比较的使用也容易出错,因为我们直接处理索引和剥离不必要的部分
# 3 楼答案
为了确保有人为非正则表达式的可能性而战:
# 4 楼答案
可以使用matches()方法将字符串与正则表达式进行比较