我正在创建的程序是一种“拼写检查”类型的程序,但已被明确告知在ArrayList
中包含字典单词,而我们正在将这些单词比较为.txt文件的文件
对于我的生活,我无法弄清楚如何比较它们。
这是我到目前为止所得到的(它没有比较循环,因为它们都没有接近工作)。
package testDelimeter;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
public class test {
public static void main(String[] args) throws FileNotFoundException {
ArrayList<String> dict = new ArrayList<String>();
File inFile = new File("C:\\Users\\Ceri\\workspace1\\testDelimeter\\src\\testDelimeter\\" + "dict" + ".txt");
Scanner in = new Scanner(inFile);
File text = new File("C:\\Users\\Ceri\\workspace1\\testDelimeter\\src\\testDelimeter\\" + "text" + ".txt");
Scanner s = new Scanner(text);
while(in.hasNext()){
dict.add(in.next());
}
}
}
指导比任何事都更棒!
答案 0 :(得分:0)
如果我理解你,这应该有效:
import java.util.ArrayList;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
ArrayList<String> dictionary = createDictionaryFromFile("C:\\path\\to\\dictionary\\dictionary.txt");
Scanner fileToCheck = new Scanner("C:\\path\\to\\file");
while (fileToCheck.hasNext()) {
String wordToCheck = fileToCheck.next();
if (!dictionary.contains(wordToCheck.toLowerCase())) {
System.out.println("Misspelled word: " + wordToCheck);
}
}
}
private static ArrayList<String> createDictionaryFromFile(String path) {
Scanner scanner = new Scanner(path);
ArrayList<String> dictionary = new ArrayList<>();
while (scanner.hasNext()) {
dictionary.add(scanner.next().toLowerCase());
}
return dictionary;
}
}
ArrayList的包含操作也不是很有效。如果将ArrayList更改为Set,则效率会更高。