这是我试图解决的初始挑战 1)采用两个参数 - 字符串中的“源”英语单词,并提供一个英文字典 2)返回英文单词列表作为数组使用Java中的arraylist查找字典中的四个连续字母,构建代码时出错
返回的单词是字典中与“源”单词相同的四个连续字母(或更多)的单词。例如,MATTER这个词在常见的ATTEND中有一行“ATTE”中有四个字母。
然而,该代码给我的错误与子
下面是供您参考的代码。
public class FourLetterInCommon {
static String wrd = "split";
static String[] d = new String[]{"SPLITS", "SPLITTED", "SPLITTER", "SPLITTERS", "SPLITTING", "SPLITTINGS", "SPLITTISM", "SPLITTISMS", "SPLITTIST", "SPLITTISTS"};
public static void main(String[] args){
System.out.println(fourletters (wrd, d));
}
public static List<String> fourletters (String word, String[] dict){
int dictsize = dict.length;
int wordlength = word.length();
List<String> Commonletters = new ArrayList<String>();
for(int i = 0; i<=dictsize; i++) {
for (int j=0; j<=wordlength;) {
if(dict[i].contains(word.substring(i, 5)))
{
Commonletters.add(dict[i]);
}
break;
}
}
return Commonletters;
}
}
这是错误消息我得到:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1 at java.lang.String.substring(Unknown Source) at FourLetterInCommon.fourletters(FourLetterInCommon.java:22) at FourLetterInCommon.main(FourLetterInCommon.java:10)
是什么错误呢?道歉,但在这个阶段有点无知。
此代码给我一个(dict [i] .contains(word.substring(i,4))) Commonletters.add(dict [i]);如果不明确, } –
和错误是... –
异常线程 “main” java.lang.StringIndexOutOfBoundsException:在FourLetterInCommon -1 \t在java.lang.String.substring(来源不明) \t:字符串索引超出范围。 (FourLetterInCommon.java:22) \t at FourLetterInCommon.main(FourLetterInCommon.java:10) –