2016-05-29 11 views
1

BufferedReaderを使用して、テキストファイルから入力を読み取り、それを交差GUIに変換しています。以下のような行の最初くるテキストファイルの形式タイトルのタブで区切られた最初の行にタイトルとサブタイトルを持っている必要があります。タブを無視してバッファードリーダーで行を読み取る方法

Clyde Rd and Creyke Rd Intersection \t Simple T-intersection 

どのように私はタイトルを読み取るために、バッファリーダーを使用すると、サブタイトルを作成し、別々の変数に割り当てますか?

私はreadline()を試しましたが、行全体を改行エスケープまで読み込みました。これを行う唯一の方法はwhileループで、文字がタブエスケープシーケンスと等しくなるまでread()メソッドですか?


編集: "範囲外のインデックス":私はエラーを取得しています

String titlesLine = reader.readLine(); 
String[] titles = titlesLine.split("\t", 2); 
String title = titles[0]; 
String sub = titles[1]; 

:これは私の現在の試みです。


更新:これは、最終的な作業コードです:

String titlesLine = reader.readLine(); 
int x = titlesLine.indexOf('\t'); 
String title = titlesLine.substring(0, x); 
String sub = titlesLine.substring(x); 
System.out.println(title); 
System.out.println(sub); 
+0

読んだ後、選択した区切り文字で区切ります。 – pvg

+0

これまでに試したことを投稿できますか? –

+0

'IndexOutOfBoundsException'は、行にタブがないことを示唆しています。したがって、' titles.length'は2未満です。2番目の要素にアクセスする前に確認できます。 – EJP

答えて

1

例をチェック、readlineの(から返された文字列を取る)とタブでそれを分割するのstring.Split()を使用必要に応じてタブが見つからない場合、またはString.indexOf()を使用してタブを見つけ、それを分割するString.substring()を使用します。

+0

正直言って、私はこれがどのような違いをもたらすのか分かりません。あなたはまだ行全体を読んでいるので、TABがなければコードは失敗します( "no TAB"の場合をテストしない限り)。 –

関連する問題