我在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("|");
}
}
我该如何解决这个问题?
答案 0 :(得分:0)
在第20行,您拨打此电话:
index = songInfo.indexOf("|");
......以及第22行的错误:
StringIndexOutOfBoundsException:字符串索引超出范围:-1
...告诉你index
是-1。
这是因为当indexOf
找不到您请求的字符串时,它返回-1。这意味着(正如Andy Turner评论的那样)songInfo
此时程序中不包含|
。
接下来要尝试的内容: