0
我有一個文本文件,其中包含英語單詞的集合。單詞按照字母順序用一個單詞寫在一行上,沒有空行,沒有標點符號等。該列表如下圖所示。名單還在繼續,直到從「Z」開始的最後一個字,也沒有空行任何使用Scanner從文件中讀取單詞class nextLine()方法
我做了一個簡單的程序,通過行從該文件一行字,並在不同的文件寫入的話。問題是,我得到這個錯誤線程「main」 java.lang.StringIndexOutOfBoundsException
例外:字符串索引超出範圍:0 在java.lang.String.charAt(來源不明) 在sd.main(sd.java:27)
這隻有在nextLine()方法返回一個帶有if條件的行中的空字符串時纔會發生。但是我從中讀取的文件中沒有空行。如果我將nextLine的每個實例)方法在程序中使用next()方法,它的工作原理完美無瑕。善解人意的細節導致這種異常發生。
import java.io.* ;
import java.util.*;
public class sd {
public static void main(String[] argue) throws java.io.IOException {
char incre = 97 ;
File diction = new File("C:/Users/LoRd CuRZon/Desktop/dictionary/wordsEn.txt") ;
PrintWriter alpha_list = new PrintWriter("C:/Users/LoRd CuRZon/Desktop/dictionary/a.txt") ;
Scanner dictionary = new Scanner(diction) ;
Scanner dictionarytemp = new Scanner(diction) ;
while(dictionary.hasNextLine()) {
if((char)incre != ((dictionarytemp.nextLine()).charAt(0))) {
alpha_list.close();
incre++ ;
alpha_list = new PrintWriter("C:/Users/LoRd CuRZon/Desktop/dictionary/" + (char)incre + ".txt") ;
}
alpha_list.println(dictionary.nextLine());
}
alpha_list.close();
dictionary.close();
}
}
正是這是根本原因。謝謝! –