初めに行数があり、次に6つのスペースで区切られた数字を一行ずつ計算していくというプログラムが作りたいのですが、実行後
Exception in thread "main" java.lang.NullPointerException at java.util.StringTokenizer.<init>(StringTokenizer.java:182) at java.util.StringTokenizer.<init>(StringTokenizer.java:219) at example.main(example.java:36)
のようなエラーが出てきます。下記がそのプログラムですが、stのコンストラクタがループの中に入っているせいだと思い、ループの外でコンストラクトしようと考えたのですがうまくいかずいきづまってしまいました。
どなたかご教示いただけませんでしょうか。よろしくお願いいたします。
int c=0;
String line ;
int ln = Integer.parseInt(br.readLine());
for(int i = 0; i < ln; i++) {
line=br.readLine();
StringTokenizer st = new StringTokenizer(line);
for(j = 0; j <= 5; j++) {
c=Integer.parseInt(st.nextToken());
intArray[j]=c;
}
(計算)
}
No.1ベストアンサー
- 回答日時:
ファイルの終了まで読み込むと、
line=br.readLine();
のところでnullが返されます。
そして、
StringTokenizer st=new StringTokenizer(line)
の時点でlineがnullだと、ご質問のようなExceptionが発生します。
そのためファイル読み込みが終了した時点でループを抜けるように、
line=br.readLine();
の直後に
if(line==null){
break;
}
を入れてループを抜けるようにすればよいと思います。
Exception表示が消えました!
それだったら回数が合ってないはずで、でも行数の方は間違いないのにと思っていたら、(計算)のところでiを使ってしまっていました。
本当に助かりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Java Java です 途中は省いてますが for(int i = 0; i < 25; i ++) { s 4 2022/05/20 23:36
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java Java 配列<選挙> 4 2023/07/31 15:07
- Visual Basic(VBA) VBAで時間(00:00形式)を積算(足し算)したい 1 2022/11/15 17:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミングについて。 1つ...
-
エクセルの当番表を作っていま...
-
ネットワークループとルーティ...
-
どなたかこのプログラミングを...
-
VBA for i=1 to lastrow
-
画面を強制的に再描画させる方法
-
【VBA】指定の範囲から特定の文...
-
while(*s++=*t++)の判定は?
-
イベントの発生を待つ
-
Escキーを押すと、中断する時と...
-
GIFアニメをループさせたくない
-
UWSCの終了の仕方
-
「VC++6」ウィンドウの再描画
-
Java 南京錠
-
EXCEL VBA(初心者)印刷ルー...
-
磁気ループ装置の仕組みと作り方
-
VBA Dir関数でファイルをループ...
-
重複データをテーブルに表示し...
-
一巡伝達関数と開ループ伝達関数
-
CreateJS(TweenJS)での連続した...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画面を強制的に再描画させる方法
-
VBAで3秒だけ時間を止めたい
-
VBAでの一時停止と再開の方法
-
どなたかこのプログラミングを...
-
Escキーを押すと、中断する時と...
-
UWSCの終了の仕方
-
エクセルの当番表を作っていま...
-
VBA for i=1 to lastrow
-
「偶数・奇数の和」のフローチ...
-
アクティブセルから、A列最終行...
-
DoEventsが必要な理由について
-
vb.netからエクセル関数書き込み
-
GIFアニメをループさせたくない
-
DOSコマンドのループ内のTIMEコ...
-
範囲指定したセルを1つずつ飛...
-
流れ図(フローチャート)が分か...
-
乱数の桁数指定、または範囲指定。
-
テキストボックスの名前に変数...
-
CSVファイルの特定の行だけを読...
-
vb.netです。2次元配列の要素を...
おすすめ情報