-2

私は問題に直面しています。「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);

    }
}
4

2 に答える 2

1

チェックを入れていた

 if(alpha < 'a' || alpha > 'z' )
            System.out.print("Error");
            status = (true);
 }

「D」が大文字の「David」と入力すると、あなたの条件で false が返されます


97
z 122
D 68の値

これは、D(68) が < a (97) であることを明確に示しています。

于 2013-07-20T05:05:44.760 に答える
1

文字が文字でないかどうかを確認するには、次を使用できます-

if(!Character.isLetter(alpha))
    System.out.print("Error");
status = true;
....
...
于 2013-07-20T05:12:06.693 に答える