Java 如何将ArrayList中的单词与文件中的单词进行比较?
我正在创建的程序是一个“拼写检查”类的程序,但已经明确告知要将字典中的单词放在Java 如何将ArrayList中的单词与文件中的单词进行比较?,java,arraylist,Java,Arraylist,我正在创建的程序是一个“拼写检查”类的程序,但已经明确告知要将字典中的单词放在ArrayList中,并且我们正在比较的文件是一个.txt文件 就我个人而言,我不知道如何比较它们 这就是我到目前为止得到的结果(它没有比较循环,因为它们都没有接近工作状态) packagetestdelimeter; 导入java.io.File; 导入java.io.FileNotFoundException; 导入java.util.ArrayList; 导入java.util.Scanner; 公开课考试{ 公
ArrayList
中,并且我们正在比较的文件是一个.txt文件
就我个人而言,我不知道如何比较它们
这就是我到目前为止得到的结果(它没有比较循环,因为它们都没有接近工作状态)
packagetestdelimeter;
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.util.ArrayList;
导入java.util.Scanner;
公开课考试{
公共静态void main(字符串[]args)引发FileNotFoundException{
ArrayList dict=新的ArrayList();
文件填充=新文件(“C:\\Users\\Ceri\\workspace1\\testDelimeter\\src\\testDelimeter\\”+“dict”+“.txt”);
扫描仪输入=新扫描仪(填充);
File text=新文件(“C:\\Users\\Ceri\\workspace1\\testDelimeter\\src\\testDelimeter\\\”+“text”+“.txt”);
扫描仪s=新扫描仪(文本);
while(在.hasNext()中){
dict.add(in.next());
}
}
}
指导比任何事情都要精彩 如果我没弄错的话,这应该行得通:
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;
}
}
import java.util.ArrayList;
导入java.util.Scanner;
公开课考试{
公共静态void main(字符串[]args){
ArrayList dictionary=createDictionaryFromFile(“C:\\path\\to\\dictionary\\dictionary.txt”);
Scanner fileToCheck=新扫描仪(“C:\\path\\to\\file”);
while(fileToCheck.hasNext()){
字符串wordToCheck=fileToCheck.next();
如果(!dictionary.contains(wordToCheck.toLowerCase())){
System.out.println(“拼写错误的单词:“+wordToCheck”);
}
}
}
私有静态ArrayList createDictionaryFromFile(字符串路径){
扫描仪=新扫描仪(路径);
ArrayList字典=新的ArrayList();
while(scanner.hasNext()){
dictionary.add(scanner.next().toLowerCase());
}
返回字典;
}
}
另外,ArrayList的contains操作不是很有效。如果将ArrayList更改为“设置”,效率会更高。从文本中逐个阅读单词,然后在ArrayList上循环并与每个内容单词进行比较,怎么样?根据拼写,Fame和Fame都是正确的。ArrayList.contains()将返回false,尽管..是的,您是对的。我添加了修复。虽然我认为问题是关于如何做的原则。对于正确的拼写检查,有许多细节需要改进。
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;
}
}