javaの勉強をしていて、わからない箇所があるので教えてください。
【質問】
下記の入力例のように、標準入力される値を受け取ろうとしたのですが、
一度、strArrayに行ごと半角スペース区切りで(例:s 70 78 82 57 74)格納し、
それぞれの値を
type = strArray[0]
english =Integer.parseInt(strArray[1])
・・
と受け取ろうとしたのですが、
strArray[1]を受け取ろうとすると、
「Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1」
のエラーが発生してしまいます。
存在しない値を受け取ろうとした際に発生するということはわかったのですが、
strArray[1]には、上記の例でいうと、
「70」が入っていると思っているのですが、誤りでしょうか?
なぜ、エラーが発生するのかが見当つきません。
ぜひ、下記のコードを見て、おかしな点がありましたら、
ご教授ください。
【参考】
■入力される値
N
t_1 e_1 m_1 s_1 j_1 g_1
t_2 e_2 m_2 s_2 j_2 g_2
...
t_N e_N m_N s_N j_N g_N
・1 行目には受験者の人数を表す整数 N が与えられます。
・続く N 行のうち i 行目 (1 ≦ i ≦ N) には受験者の文理の区分を表す文字 t_i と、英語、数学、理科、国語、地理歴史の点数を表す整数 e_i, m_i, s_i, j_i, g_i がこの順に半角スペース区切りで与えられます。
・t_i について文系は "l" ("L" の小文字)、理系は "s" で表されます。
・入力は合計で N + 1 行となり、入力値最終行の末尾に改行が1つ入ります。
■入力例
5
s 70 78 82 57 74
l 68 81 81 60 78
s 63 76 55 80 75
s 90 100 96 10 10
l 88 78 81 97 93
■回答
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 受検者人数Nを受け取る
int number = sc.nextInt();
for(int i = 0; i<=number;i++){
String[] strArray = sc.nextLine().split(" ");
type = strArray[0]
english =Integer.parseInt(strArray[1])
}
}
}
No.1ベストアンサー
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Java Java 配列<選挙> 4 2023/07/31 15:07
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
- C言語・C++・C# 至急お願いします。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分母 3 2022/07/19 17:09
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
テキストボックスに入力された...
-
論理演算子”||”またはの入力方法
-
Loop後に変数が出力できないです
-
基数変換プログラム
-
javaプログラムについて
-
Java、2の0乗~10乗の表示
-
繰り返しによる星印の出力
-
for文を使った累乗の計算方法に...
-
Randomメソッドの確率設定
-
数値⇒漢数字変換 java
-
Java 配列<選挙>
-
Ctrl+Zが入力されると終了する...
-
java キーボード入力された値の...
-
階乗の式
-
VBAで配列の計算
-
配列にnullを代入すると、null...
-
配列をセッションに割り当てた後で
-
1~100までの数字を表示し、か...
-
Log4jで機能毎に別ファイルへ出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
java キーボード入力された値の...
-
Java、2の0乗~10乗の表示
-
数値⇒漢数字変換 java
-
論理演算子”||”またはの入力方法
-
コマンドライン引数の例外処理...
-
JAVAのfor文で困っています。
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
Java 入力した整数値の合計を、...
-
7つ数字を表示したら改行すると...
-
テキストボックスに入力された...
-
countに実行した回数をいれたい...
-
総称型ArrayList<E>への参照...
-
Randomメソッドの確率設定
-
Ctrl+Zが入力されると終了する...
-
学校で課題を出されて困ってい...
-
Java キーボードから負の数が入...
-
キーボードから10人分の点数を...
-
階乗の式
-
Java 配列<選挙>
おすすめ情報