我遇到了问题。当我输入一个名字,如:'david'。它成功终止但当我输入名称为“David”时,它显示错误。你们对此有什么想法/解决方案吗?
import java.util.Scanner;
public class test {
public static void main(String args[]) {
Scanner sc = new Scanner(System. in );
String name;
int length;
char alpha;
boolean status = true;
do {
System.out.print("Enter name : ");
name = sc.nextLine();
length = name.length();
for (int count = 0; count < length; count++) {
alpha = name.charAt(count);
if (alpha < 'a' || alpha > 'z')
System.out.print("Error");
status = (true);
}
} while (status == false);
}
}
答案 0 :(得分:1)
你已经检查了
if(alpha < 'a' || alpha > 'z' )
System.out.print("Error");
status = (true);
}
当你输入'David'的地方'D'是大写的,那么它会随着你的条件返回false
的价值
a 97
z 122
D 68
这清楚地表明D(68)是&lt; a(97)
答案 1 :(得分:1)
要检查,如果某个字符不是字母,您可以使用 -
if(!Character.isLetter(alpha))
System.out.print("Error");
status = true;
....
...