Java 循环字符

Java 循环字符,java,for-loop,char,character,Java,For Loop,Char,Character,我面临一个问题。当我键入诸如“david”之类的名称时。它成功终止,但当我输入名称为“David”时,它显示一个错误。你们对此有什么想法/解决方案吗 import java.util.Scanner; public class test { public static void main(String args[]) { Scanner sc = new Scanner(System. in ); String name; int leng

我面临一个问题。当我键入诸如“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);

    }
}
import java.util.Scanner;
公开课考试{
公共静态void main(字符串参数[]){
扫描仪sc=新的扫描仪(System.in);
字符串名;
整数长度;
炭α;
布尔状态=真;
做{
系统输出打印(“输入名称:”);
name=sc.nextLine();
length=name.length();
对于(int count=0;count'z')
系统输出打印(“错误”);
状态=(真);
}
}while(status==false);
}
}

您已经检查了

 if(alpha < 'a' || alpha > 'z' )
            System.out.print("Error");
            status = (true);
 }
if(alpha<'a'| alpha>'z')
系统输出打印(“错误”);
状态=(真);
}
当您输入'David'时,其中'D'是大写字母,那么它将返回false和您的条件


a 97
z122
D 68


这清楚地表明D(68)是要检查,如果字符不是字母,可以使用-

if(!Character.isLetter(alpha))
    System.out.print("Error");
status = true;
....
...

计算机能识别大写和小写之间的差别,就像大多数人一样。请不要误导运算。这与ASCII无关。请指向Unicode代码点列表。