我收到了错误:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1
at java.lang.String.charAt(String.java:658)
at javaapplication1.JavaApplication1.main(JavaApplication1.java:49)
/home/panda/.cache/netbeans/8.2/executor-snippets/run.xml:53: Java returned: 1
以下程序。这里的名字是一个字符串数组。
for (int i = 0; i < n; i++)
{
for (int j = i + 1; j < n; j++)
{
if(names[i].charAt(1) == names[j].charAt(1))
{
if ((names[i].substring(2)).compareTo((names[j].substring(2)))>0)
{
temp = names[i];
names[i] = names[j];
names[j] = temp;
}
}
}
}
答案 0 :(得分:0)
您有错误消息: https://docs.oracle.com/javase/7/docs/api/java/lang/StringIndexOutOfBoundsException.html
对于starter,A String是一个char数组。像任何其他数组一样,如果您尝试访问负索引或索引大于实际数组的大小,您将得到一个&#34; OutOfBound&#34;例外。另请注意,Array是0基索引。
对于您的特定问题,如@Kirill Ch的评论中所述,我将设置一个断点并找到您尝试访问超出范围的索引的位置。它取决于名称[]数组
中的数据希望有所帮助