此程序的目的是导入2个文件。明文文件和字典明文文件。
程序应搜索文件并比较单词并打印出不匹配的任何内容,即拼写错误的单词。
我已经使用扫描程序读取并将每行放入一个数组(字典以行显示)但我无法弄清楚如何将两个数组列表相互比较。
感谢任何帮助。
import java.io.File;
import java.io.PrintWriter;
import java.util.Scanner;
import java.io.FileNotFoundException;
import java.util.ArrayList;
public class Dictionary {
public static void main(String[] args) throws FileNotFoundException {
ArrayList <String> words = new ArrayList<String>();
ArrayList <String> dict = new ArrayList<String>();
File inputFile = new File(args [0]);
File inputDictionary = new File(args [1]);
Scanner in = new Scanner(inputFile);
Scanner inDict = new Scanner(inputDictionary);
while(in.hasNext()) {
String word = in.next();
words.add(word);
}
while (inDict.hasNextLine()) {
String correctWord = inDict.nextLine();
dict.add(correctWord);
}
}
}
答案 0 :(得分:0)
你需要循环遍历Arraylist中的每个单词,看看它是否包含在dict Arylylist中。
boolean[] misspelled = new boolean[words.size()];
int i = 0;
for (String word : words) {
misspelled[i] = !dict.contains(word);
i++;
}
这定义了一个布尔数组,它跟踪所有拼写错误的单词,如果某个索引中的单词不包含在字典列表中,那么该索引处的布尔值设置为true,这意味着该单词不是拼写正确。
答案 1 :(得分:0)
您需要迭代两个ArrayList
并进行比较。
for(int i = 0; i<words.size();i++){
for(int j = 0; j<dict.size(); j++){
if(words.get(i).equals(dict.get(j))){
// they are equivalent strings
}else{
// not equivalent
}
}
}
答案 2 :(得分:0)
试试这个。
for(String word : words){ //loop for words
if(!dict.contains(word)) //check if dict contain word
System.out.println(word); //print it if dict doesnt have word
}