java - 检查一个单词是否在文本文件中

标签 java

所以,我有一个程序应该通过一个名为 dictionary.txt 的文件并检查输入的单词是否在字典文本文件中。

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {


public static void main(String[] args){

    String word = null;
    Scanner scan = new Scanner(System.in);
    word = scan.nextLine();

    try {
        if(isInDictionary(word, new Scanner(new File("dictionary.txt")))){
            System.out.println(word + " is in the dictionary");
        } else System.out.println(word + " is NOT in the dictionary");
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

public static boolean isInDictionary(String word, Scanner dictionary){

    List<String> dictionaryList = new ArrayList<String>();
    for(int i = 0; dictionary.hasNextLine() != false; i++){
        ++i;
        dictionaryList.add(dictionary.nextLine());
        if(dictionaryList.get(i) == word){
            return true;
        }
    }

    return false;

}

}

当我尝试运行它时出现此错误:

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
at java.util.ArrayList.rangeCheck(ArrayList.java:635)
at java.util.ArrayList.get(ArrayList.java:411)
at io.github.mediocrelogic.checkDictionary.Main.isInDictionary(Main.java:34)
at io.github.mediocrelogic.checkDictionary.Main.main(Main.java:19)

为什么我会在这里收到 IndexOutOfBoundsException?代码没有语法错误。 dictionary.txt 文件大约 19.95mb,这就是我收到此异常的原因吗?

最佳答案

请完全删除代码行++i;i 已在 for 循环中递增。

关于java - 检查一个单词是否在文本文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22751565/

相关文章:

java - Mysql 日期时间转日历

java - 上传并运行 Selenium Java 测试

java - 为什么使用parallelStream访问和修改Collection会得到不同的结果?

garbage-collection - 确定 OpenJDK Activity GC 类型

Java:如何为 `toArray`实现 `Collection`

java - 编译错误 - com.mysql.jdbc.Driver 无法解析为变量

java - 如何在 Netbeans 中调试 Ruby 基本方法?

java - 使用 GWT FormPanel 和 FileUpload 上传的文件大小是否有限制?

java - 如何匹配字符串输入

java - 如何在配置文件而不是代码中在客户端为 WCF 服务配置用户 ID/密码