Java について理解を深めるために自己学習演習を行っていますが、この質問に行き詰まっています。次のtxtファイルがあります。
Name Hobby
Susy eat fish
Anna gardening
Billy bowling with friends
※名前と趣味はタブ区切り
すべての行を読み取り、それを arraylist(name,hobby) に入れる最良の方法は何ですか。トリッキーな部分は、
eat fish or bowling with friends
には空白があり、1 つの配列の下に配置する必要があり、明らかにハードコードすることはできません。これが私の現在のコードです:
public void openFile(){
try{
FileInputStream fstream = new FileInputStream("textfile.txt");
// use DataInputStream to read binary NOT text
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
ArrayList<String> names = new ArrayList<String>();
ArrayList<String> hobbies = new ArrayList<String>();
String lineJustFetched;
while ((lineJustFetched = br.readLine()) != null) {
String[] tokens = lineJustFetched.split(" \t");
エラーが発生しました:
java.lang.StringIndexOutOfBoundsException: 文字列インデックスが範囲外です: -1
タブでインデックスを数えることはあまり役に立たないと思います。何か案が?