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

use*_*100 0 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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我该怎么检查呢?

Jon*_*eet 6

是的 - data是一个String,你不能像data[i]字符串一样使用索引表达式.

也许你想要:

if (b.toString().equals(data.substring(i, i + 1))
Run Code Online (Sandbox Code Playgroud)

虽然这是一个好主意,但目前还不清楚.Byte.toString可能不会做你期望的.也许你真的想要:

if ((char) b == data.charAt(i))
Run Code Online (Sandbox Code Playgroud)