-1

16 進数を検証しようとしていますが、うまくいきません。以下のコードを試していますが、私のロジックはうまくいきません。何か助けはありますか?

if (!array[i].equals("A") || !array[i].equals("B") || !array[i].equals("C") || !array[i].equals("D") || !array[i].equals("E") || !array[i].equals("F")) 
  {
  b[i] = false;
  }
  else
  {
  b[i] = true;
  }

上記のコードの目的は、真または偽の値を与えることです。値が A から F の間にある場合は true、値が A から F の間にない場合は false です。

4

3 に答える 3

1
if ((array[i]-'A') > 5)
b[i]=false;
else 
b[i]=true;
于 2013-01-23T20:16:19.960 に答える
0

||すべてをに変更し&&ます。

現在、if条件は常に次のように評価されますtrueどの"A"文字列もまたはに等しくないため"B")。

または、構成全体を次のように置き換えます。

b[i] = array[i].equals("A") || array[i].equals("B") || array[i].equals("C") ||
       array[i].equals("D") || array[i].equals("E") || array[i].equals("F");
于 2013-01-23T20:14:30.897 に答える
0
if (array[i].equals("A") || array[i].equals("B") || array[i].equals("C") || array[i].equals("D") || array[i].equals("E") || array[i].equals("F")) 
{ b[i] = true; }
else 
{ b[i] = false; }

Listまたは、 aと を使用することもできます.contains()

List<String> hexchars = new ArrayList<String>();
hexchars.add("A");
hexchars.add("B");
hexchars.add("C");
hexchars.add("D");
hexchars.add("E");
hexchars.add("F");
return hexchars.contains("A");

しかし、長い目で見れば、正規表現はこれを行うための最もクリーンな方法です。

于 2013-01-23T20:16:39.307 に答える