【发布时间】:2016-12-13 06:28:22
【问题描述】:
我现在正在尝试打印单词的后缀,但出现了一些问题。
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1
at java.lang.StringBuffer.charAt(Unknown Source)
at _20161212.Launcher.compareSameThings(Launcher.java:67)
at _20161212.Launcher.main(Launcher.java:52)
这是错误代码:
我正在寻找原因,但对我来说很难。
这个
public static void compareSameThings(StringBuffer[] strbuf, int index01, int index02, int count) {
count++;
if ((int) strbuf[index01].charAt(count) > (int) strbuf[index02].charAt(count)) {
StringBuffer temp = strbuf[index01];
strbuf[index01] = strbuf[index02];
strbuf[index02] = temp;
} else if ((int) strbuf[index01].charAt(count) == (int) strbuf[index02].charAt(count)) {
compareSameThings(strbuf, index01, index02, count);
}
}
还有这个
for (int index01 = 0; index01 < str.length() - 1; index01++) {
for (int index02 = index01 + 1; index02 < str.length(); index02++) {
int count = 0;
if ((int) strbuf[index01].charAt(count) > (int) strbuf[index02].charAt(count)) {
StringBuffer temp = strbuf[index01];
strbuf[index01] = strbuf[index02];
strbuf[index02] = temp;
} else if (strbuf[index01].charAt(count) == strbuf[index02].charAt(count)) {
compareSameThings(strbuf, index01, index02, count);
}
}
}
您能告诉我出现这些问题的原因吗?
【问题讨论】:
-
你是第 52 行吗?
-
@Thrasher 这并不重要。你应该想知道第 67 位。反正第52行大概是第二个sn-p的最后一行了
标签: java string indexoutofboundsexception stringbuffer