-1

我正在尝试验证一个十六进制数字,但它的进展并不顺利。我正在尝试下面的代码,但我的逻辑并不完全正确。有什么帮助吗?

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;
  }

上述代码的目的是给我一个真值或假值。True 表示值在 A 到 F 之间 false 表示值不在 A 到 F 之间。

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"or "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; }

或者,您也可以使用 aList和使用.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 回答