因此,我有一個程序應該通過名爲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,這就是爲什麼我收到此異常?
「沒有語法錯誤」 的JVM說,有。 – aliteralmind
@aliteralmind Pedantic:編譯器會捕獲語法錯誤,而不是JVM。 :) –
JVM根據代碼中的錯誤報告了運行時錯誤。 OP是正確的,代碼的語法不是這個問題的根本原因。 –