我试图从文件中读取单词(我已经做过),然后将“相差一个字母”的单词写入新的输出文件(PrintWriter类)。我不知道如何比较相差一个字母的单词。我对ArrayList不太熟悉。我在这里先向您的帮助表示感谢。 这是我的代码:
ArrayList<String> words2=new ArrayList<>();
// I created words2 so i could compare it to words
for (int i = 0; i < words.size(); i++) {
// words includes the words read from file
System.out.print(words.get(i)+" ");
for(int j=0; j<words.size();j++){
words2=words;
答案 0 :(得分:1)
首先,您需要定义单词在一个字符中不同的所有情况。例如,以下两个是否被视为有效案例?还有其他吗?
might vs. mighty
male vs. mall
如果只有一种情况您认为有效,则可以实施一种算法,将每个单词与所有其他单词进行比较,逐个字母比较并计算不相等的单词,仅过滤具有“差异计数”恰好为1。
否则,有一种称为Levenshtein distance的已知算法,您可以实现该算法,也可以找到实现该算法并使用它的库。