1

文字列「BC+D*E-」があります。文字列の各文字がアルファベットかどうかを確認したい。isLetter()を使ってみましたが、=、*、-もアルファベットと見なされます。助けてください。よろしくお願いします。

4

6 に答える 6

14

試す

    String s = "BC+D*E-=";

    for (int i = 0; i < s.length(); i++) {
        char charAt2 = s.charAt(i);
        if (Character.isLetter(charAt2)) {
            System.out.println(charAt2 + "is a alphabet");
        }
    }
于 2013-03-22T03:40:05.007 に答える
1

Wrapper クラスの Character#isLetter(char)メソッドを使用する

Character.isLetter(char c);

そして一文字一文字チェック。

于 2013-03-22T03:41:15.343 に答える
1

このスニペットが役立つ場合があります。

 String startingfrom = "BC+D*E-".toUpperCase();
        char chararray[] = startingfrom.toCharArray();
        for(int i = 0; i < chararray.length; i++) {
                            int value = (int)chararray[i];
                            if((value >= 65 && value <= 90) || (value >= 97 && value <= 122))
                                System.out.println(chararray[i]+ " is an alphabate");
                            else 
                                System.out.println(chararray[i]+ " is not an alphabate");
        }
于 2013-03-22T03:42:51.843 に答える
0

英字の ASCII 値を使用できます。例えば

for (char c : "BC+D*E-".toCharArray())
{
  int value = (int) c;
  if ((value >= 65 && value <= 90) || (value >= 97 && value <= 122))
  {
    System.out.println("letter");
  }
}

ここで ASCII テーブルを見つけることができます: http://www.asciitable.com/

于 2013-03-22T03:42:00.487 に答える
0
String stringEx =  "BC+D*E-";
for (char string : stringEx.toCharArray()) {
    if ( ( (char)string > 64 ) && ((char)string < 91) )
        System.out.println("It is character");
    if ( ( (char)string > 96 ) && ((char)string < 123) )
    System.out.println("It is character");
}

このコードを使用できます。これも役立つかもしれません。

于 2013-03-22T05:09:04.670 に答える
0

文字列を配列に分割し、それを反復処理します。

String word = "BC+D*E-"
for (char c : word.toCharArray()) {
    if(!(Character.isLetter(c)) {
        System.out.println("Not a character!");
        break;
    }
}
于 2013-03-22T03:39:37.883 に答える