Synat错误 - 表达式的类型必须是数组类型,但它已解析为String

时间:2013-08-20 15:37:10

标签: java syntax

我在使用data[i]

检查字符串时收到语法错误
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;
        }
    }
}

我应该如何检查?

3 个答案:

答案 0 :(得分:6)

是的 - dataString,您不能在字符串上使用data[i]之类的索引表达式。

也许你想要:

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

虽然目前还不清楚这是个好主意。 Byte.toString可能不会按照您的预期执行。也许你真的想要:

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

答案 1 :(得分:0)

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

然后让equals()工作,或者将它们比作字符串

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

或者,将它们比作字符

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

答案 2 :(得分:0)

您也可以使用,

b.toString().equals(data.charAt(i));