クラスワードを作成しました。Word には、文字列引数を取るコンストラクタと、長さでソートされた word のすべての部分文字列を含む文字列を返す 1 つのメソッド getSubstrings があります。
たとえば、ユーザーが「rum」と入力すると、メソッドは次のように出力される文字列を返します。
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()
。
この問題を解決するには?