我創建了類Word。 Word有一個構造函數,它接受一個字符串參數和一個方法getSubstrings,它返回一個包含所有字的子串的字符串,按照長度排序。查找字符串的所有子字符串 - StringIndexOutOfBoundsException
例如,如果用戶提供了輸入「朗姆酒」,則該方法返回一個 串,將打印這樣的:
r
u
m
ru
um
rum
我要連接的子串在一個字符串,將它們與分離換行符(「\ n」)。然後返回字符串。
代碼:
public class Word {
String word;
public Word(String word) {
this.word = word;
}
/**
* Gets all the substrings of this Word.
* @return all substrings of this Word separated by newline
*/
public String getSubstrings()
{
String str = "";
int i, j;
for (i = 0; i < word.length(); i++) {
for (j = 0; j < word.length(); j++) {
str = word.substring(i, i + j);
str += "\n";
}
}
return str;
}
但它拋出異常:
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1911)
我停留在這一點上。也許,根據此方法簽名public String getSubstrings()
,您還有其他建議。
如何解決這個問題?異常的
次,然後考慮使用String構造函數以及'substring()'方法,就像你的情況一樣,'str = new String(word.substring(i,i + j));'。否則,它可能會在某個時間導致內存泄漏(是的,但它與具體問題無關)。 – Lion