2013-08-20 40 views
0

我得到一个语法错误有关检查字符串与data[i]Synat错误 - 类型的表达式必须是一个数组类型,但它解析为字符串

String data; // has value 
ArrayList<Byte> byteArr = txfCheck.getFilterByteArray(); 
for (int i = 0; i < data.length(); i++) { 
    for (Byte b : byteArr) { 
     if (b.toString().equals(data[i])) { 
      break; 
     } 
    } 
} 

我应该如何来检查呢?

+1

请格式化你的代码并完成它 –

+0

请提供一些代码并告诉我们你是如何试图解决它的。 – u6f6o

+0

不完整的问题 –

回答

6

嗯,是 - dataString,你不能在一个字符串中使用一个索引表达式像data[i]

也许你想:

if (b.toString().equals(data.substring(i, i + 1)) 

虽然它远不清楚这是个好主意。 Byte.toString可能不会做你期望的。也许你真的想要:

if ((char) b == data.charAt(i)) 

0

使用String#chatAt()将字符串视为char[],并在索引i检索char

那么对于equals()工作,无论是对比它们作为字符串

if (b.toString().equals(data.charAt(i)+"") 

或者,它们的比较结果为字符

if ((char) b == data.charAt(i)) 
0

你也可以使用,

b.toString().equals(data.charAt(i)); 
相关问题