0

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

我应该如何检查它?

4

3 回答 3

6

嗯,是的 -data是 a String,你不能像data[i]在字符串上那样使用索引表达式。

也许你想要:

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

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

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

?

于 2013-08-20T15:41:55.653 回答
0

你也可以使用,

b.toString().equals(data.charAt(i));
于 2013-08-20T15:43:33.927 回答
0

使用String#chatAt()将 String 视为 a并在 index 处char[]检索 a 。chari

然后为了equals()工作,要么将它们作为字符串进行比较

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

或者,将它们作为字符进行比较

if ((char) b == data.charAt(i))
于 2013-08-20T15:42:38.733 回答