我正在循环遍历数组列表,并被抛出此错误
java.lang.IndexOutOfBoundsException:索引: 3,大小:3
这是密码
for(i in chatMessages.indices) {
if(i < chatMessages.size){
if(chatMessages[i] == "To" && chatMessages[i+1] != "To") {
lastItem = true
}}
}错误发生的条件如下
chatMessages[i] == "To" && chatMessages[i+1] != "To"下面是数组声明
var chatMessages = arrayListOf<String>()为什么我的情况i < chatMessages.size不工作?
任何帮助都是很好的
~ Matthew M
发布于 2020-05-15 06:16:37
即使您检查了i < chatMessages.size,也试图访问不存在的[i + 1]th元素。将if语句更改为size-1或应该小于lastIndex
for (i in chatMessages.indices) {
if (i < chatMessages.lastIndex) {
if (chatMessages[i] == "To" && chatMessages[i + 1] != "To") {
lastItem = true
}
}
}用不变变量和泛函方法更好地解决问题
val lastItem = chatMessages.zipWithNext()
.any { it.first == "To" && it.second != "To" }https://stackoverflow.com/questions/61801694
复制相似问题