Java 显示匹配行时出现ArrayIndexOutOfBound异常
我的android代码有问题。这段代码的目标是读取文本文件的每一行,以便与静态字符串相匹配。我还需要显示所有匹配的问题。 我的静态输入字符串是“what is your DOB”,还有一个文本(fms.txt)文件,其中包含资产文件夹中的所有问题。然后我编译了这段代码。我得到了错误的输出 我的代码Java 显示匹配行时出现ArrayIndexOutOfBound异常,java,Java,我的android代码有问题。这段代码的目标是读取文本文件的每一行,以便与静态字符串相匹配。我还需要显示所有匹配的问题。 我的静态输入字符串是“what is your DOB”,还有一个文本(fms.txt)文件,其中包含资产文件夹中的所有问题。然后我编译了这段代码。我得到了错误的输出 我的代码 try { ins = this.getAssets().open("fms.txt"); reader = new BufferedReader(new InputStreamRea
try {
ins = this.getAssets().open("fms.txt");
reader = new BufferedReader(new InputStreamReader(ins));
line = reader.readLine();
message = "What is your DOB";
messages = message.split(" ");
int i = 0, j = 0, inc = 1, oldin = 0;
while (line != null) {
lines = line.split("#");
words = lines[0].split(" ");
if (words[0].trim().equals(messages[0].trim())) {
for(i = 1; messages[i].trim() != null; i++) {
Log.e(TAG, "----------::::"+messages[i].trim());
oldin = inc;
}
}
line = reader.readLine();
}
ins.close();
Log.e(TAG, "---------FMSG : "+finalmsg);
} catch(IOException e1) {
e.printStackTrace();
}
问题似乎出在您的
for(i=1;messages[i].trim()…
中,因为i
有时会大于或等于messages
数组的长度。要解决此问题,应将代码更改为:
for (i = 1; i < messages.length && messages[i] != null &&
!messages[i].trim().isEmpty(); i++) {
//your business logic...
}
顺便说一句,下次请不要发布代码的图像,而是写在你的问题上。如果你不知道如何格式化代码,别担心,其他人会编辑问题并帮助你。stacktraces的建议也是一样。你在这里面对的是ArrayIndexOutOfBoundsException,因为你还有一个白色的地方在你的比较中 替换
for(i=1; messages[i] != null, i++)
与
for(i=1;i
for(i=1; messages[i] != null, i++)
for(i = 1; i < messages.length && messages[i] != null && !messages[i].trim().isEmpty(); i++)