1

こんにちは、char 変数がアルファベットの最初の 6 文字のいずれかであるかどうかを調べるために、解決策を考え出そうとしています。そうでない場合は、その真です。

「t」は、特定の不明な値を含む私の char 変数です。

私が持っているもの:

(t < 'a' || t > 'f' && t < 'A' || t > 'F')
4

6 に答える 6

3
  "ABCDEFabcdef".indexOf(t) != -1
于 2013-08-28T12:10:01.900 に答える
3

ここでわかるように、 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html 演算子は条件&&よりも優先されます||

(t < 'a' || t > 'f' && t < 'A' || t > 'F')

と同じです

(t < 'a' || (t > 'f' && t < 'A') || t > 'F')
            ^^^^^^^^^^^^^^^^^^^^

おそらくこれらの部分に分割したい場所

((t < 'a' || t > 'f') && (t < 'A' || t > 'F'))
 ^^^^^^^^^^^^^^^^^^^^    ^^^^^^^^^^^^^^^^^^^^

文字を小文字にしてchar tLower = Character.toLowerCase(t)、かどうかを確認することもできますtLower < 'a' || tLower > 'f'

于 2013-08-28T12:10:11.263 に答える
0

長い実装が必要な場合は、理解のためにJDK 1.7でこれを試すことができます。

 char t='t';
    boolean status=true;
    switch (String.valueOf(t).toLowerCase())
    {
        case "a": status=false;
            break;
        case "b": status=false;
            break;
        case "c": status=false;
            break;
        case "d": status=false;
            break;
        case "e": status=false;
            break;
        case "f": status=false;
            break;
    }
    if(status){
        System.out.println("condition satisfied");
    }else{
        System.out.println("letter is "+String.valueOf(t)+" and it is between a and f");
    }
于 2013-08-28T12:26:47.413 に答える