-3

以下に示すように、区切り記号付きのテキストファイルがあります。要素を1つずつ取得しようとしています。

01/06/13:4pm

3:2

6:3

以下のコードがアクティブ化されると、プログラムから no such element 例外が発生します。

  BufferedReader br = new BufferedReader(new FileReader("BookingMade.txt"));     

 if (br.readLine() != null) {

 Scanner s = new Scanner(br).useDelimiter(":");
 System.out.println(s.next());
 System.out.println(s.next());
 System.out.println(s.next());
 System.out.println(s.next());
 System.out.println(s.next());
 System.out.println(s.next());
 }
  br.close();

出力は次のようになります

0

3

2

6

3

4

2 に答える 2

5

あなたの質問は不明確ですが、ここに問題があります: この行では、ファイルの最初の行をスキップしています:

if (br.readLine() != null) {

この後、利用可能なトークンは 4 つしかありませんが、6 を読み取ろうとしているため、NoSuchElementExceptionがスローされます。

次を使用して、使用可能なトークンを確認できますhasNext

Scanner s = new Scanner(new File("BookingMade.txt")).useDelimiter(":");
while (s.hasNext()) {
   System.out.println(s.next());
}
于 2013-04-26T16:51:50.150 に答える
3

BookingMade.txt の解析中に区切り文字が見つからなくなったため、エラーが発生しています。

NoSuchElementException

列挙型の nextElement メソッドによってスローされ、列挙型にこれ以上要素がないことを示します。

ここに画像の説明を入力

于 2013-04-26T16:50:13.220 に答える