检查Java中的有效名称

  • 本文关键字:有效 Java 检查 java
  • 更新时间 :
  • 英文 :


我想检查有效的firstName和lastName。这是我实现的代码,它在输入firstName和lastName的数字时返回false。但它允许用户包含字母或空格。

当我尝试输入数字时,下面的checkName函数仍然返回true:

public static boolean checkValidName(String name){

for(int i = 0; i < name.length(); ++i){
char ch = name.charAt(i);

if(!Character.isLetter(ch)){
return false;
}   

if(!Character.isWhitespace(ch)){
return false;
}
return true;
}
return true;
}

如果我们想检查name不包含任何数字(但可以包含特殊字符,如&,%,$,*等)的条件,

public static boolean checkValidName(String name) {
for (int i = 0; i < name.length(); ++i) {
char ch = name.charAt(i);
if (Character.isDigit(ch)) {
return false;
}
}
return true;
}

由于OP提到name正在被验证,我认为通常名称不包含数字和特殊字符。如果我们想将name限制为只能是字母和空格(没有数字和特殊字符,如&,%,$,*等),那么如果character不是字母或空格,则需要返回false

public static boolean checkValidName(String name) {
for (int i = 0; i < name.length(); ++i) {
char ch = name.charAt(i);
// If the character is not a letter and not a whitespace, return false.
if (!Character.isLetter(ch) && !Character.isWhitespace(ch)) {
return false;
}
}
return true;
}

将字符串匹配到模式的更简洁的方法是使用regex。

在本例中:

return name.matches("[a-zA-Z]+ [a-zA-Z]+");

这个正则表达式匹配由一个空格分隔的两个单词(只有英文字母,至少一个字符)的字符串。当然,这可以根据您的需要进行调整。

最新更新