在这个程序中,我应该检查文件中的每个单词" Paper"在文件"字典"。如果该字词不在dictionary
文件中,则为prints out ("Line #" "the word")
。这段代码中的问题是循环。我不知道要重置循环。
EX:字典文件有两个单词 big 和 small
一个纸质文件的句子他的脚是小
该程序将打印
行:1:他的 线:1:脚
行:1:是
import java.util.Scanner;
import java.io.*;
public class SpellCheck{
public static void main(String[] arg) throws FileNotFoundException{
Scanner readfile = new Scanner(new File("paper"));
String word = "";
int count = 0;
while(readfile.hasNextLine()){
String line = readfile.nextLine();
Scanner linescan = new Scanner(line);
String Scannedword = linescan.next();
word = Scannedword;
count++;
}
Scanner openDictionary = new Scanner(new File("Dictionary"));
String wordInDictionary = openDictionary.next();
if(word.equals(wordInDictionary)){
}else{
System.out.println("Line " + count + ": " + word);
openDictionary.close();
}
}
}
答案 0 :(得分:0)
我宁愿预处理字典文件。
while(readfile.hasNextLine()){
String line = readfile.nextLine();
Scanner linescan = new Scanner(line);
String Scannedword = linescan.next();
word = Scannedword;
count++;
}
就像你在这里写的一样,制作一个哈希集或任何你喜欢的容器,并复制到字典文件中的单词。并且,使用另一个循环来完成您的任务(检查容器是否包含您刚读取的单词。)这样,两个循环不会嵌套,因此它将运行O(n)。