【发布时间】:2017-04-06 21:46:14
【问题描述】:
for (int i = 0; i < data.length; i++) {
if (data[i].toString() != null) {
char a = data[i].toString().charAt(0);
if (a == a1) {
if (distance(data[i], keyword) < 5) {
Log.d("sjdhkshdjjjjjjjjjjjjjj", data[i]);
dist.add(distance(data[i], keyword));
sound.add(data[i]);
}
}
}
}
它在从 data[].tostring() 访问第一个字符的行上给出异常。
【问题讨论】:
-
与其试图描述这行代码的样子,不如告诉我们确切的代码行。是
char a2=data[5].charAt(0);吗?是char a1=input.charAt(0);吗?此外,在寻求免费帮助时,至少要花时间正确缩进您的代码。 -
了解
data的样子会很有帮助。 -
解决它的方法是停止离开字符串(或数组或列表或集合)的末端。如果您学会使用调试器,则可以单步调试代码并找出您做错的地方,这比发布问题让其他人为您解决问题要快。
-
data[i].toString()为空。阅读异常信息:它会告诉你字符串长度为零。 -
@MianHassan 不,您检查了字符串引用是否为
null。 Null 和empty 不是一回事:"" != null为假,但"".isEmpty()(或"".length() == 0)为真