我的程序的一部分有问题。在下面的代码中,27 是我们字母表中的字母数;list_extended 是一个 Hashtable(StringBuffer,Integer) 类型的对象,包含文本中所有长度为 n+1 的字符串以及出现次数;list_extended 是正确构建的,因为我已经控制了这部分。目的是:对于外部 for 的每次重复,我们获取生成的文本的最后 n 个字符,并且对于字母表中的每个字母,我们计算通过将字符添加到最后一个字符获得的 n+1 个字符在 list_extended 中出现的次数n 个字符的 text_generated;然后我们选择出现次数最多的字母。我得到的结果是出现次数全部为 0,为什么?编码
int index;
int[] occurrences = new int[27];
StringBuffer curr_word;
for(int x = 0; x < m; x++){ // m is the number of characters the user wants to add
curr_word = new StringBuffer(text_generated.substring(x, x+n)); // n is an integer entered previously, initially text_generated is formed by n characters
for(int j = 0; j < 27; j++){
if(list_extended.get(curr_word.append(array[j]))==null)
occurrences[j] = 0;
else
occurrences[j] =(int) list_extended.get(curr_word.append(array[j]));
}
index = 0;
for(int j = 1; j < 27; j++){
if(occurrences[j] > occurrences[index])
index = j;
}
text_generated = text_generated.append(array[index]);
}
System.out.println("The text generatd is \n" + text_generated.toString());