对于循环字符

时间:2013-07-20 05:02:11

标签: 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 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);

    }
}

2 个答案:

答案 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;
....
...