我很难用bluej编写代码。我不断得到这个错误,所有的语法和其他问题都解决了,但它不断提供这个错误。上面写着在第22行:
stringindexoutofboundsexception:字符串索引超出范围:-1
以下是我编写的代码:
public static void main() {
String songInfo = MediaFile.readString();
int index = songInfo.indexOf("|");
System.out.println("My Favorites");
System.out.println("------------");
while(index > 0){
String title = songInfo.substring(0, index);
songInfo = songInfo.substring(index + 1);
index = songInfo.indexOf("|");
String ratingStr = songInfo.substring(0, index); //this is the line where the error occurs
int rating = Integer.valueOf(ratingStr);
if(rating >= 8){
System.out.println(title + "(" + rating + ")");
}
songInfo = songInfo.substring(index + 1);
index = songInfo.indexOf("|");
}
}
我怎样才能解决这个问题?
1条答案
按热度按时间mqkwyuun1#
在第20行,你打这个电话:
... 第22行的误差是:
stringindexoutofboundsexception:字符串索引超出范围:-1
... 告诉你了
index
是-1。这是因为当
indexOf
找不到您请求的字符串,它返回-1。这意味着(正如安迪·特纳评论的那样)songInfo
不包含|
在程序的这一点上。下一步尝试:
检查输入数据。
使用调试器并逐步完成代码。
适当处理-1的索引