前提・実現したいこと
スペース区切りで名前と年齢を入力し、年齢を三倍した数と名前をスペース区切りで返したいのですが、エラーが出てしまいます。原因について教えていただけませんでしょうか。
入力した内容は、Yamada 30です。
発生している問題・エラーメッセージ
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1 at Main.main
該当のソースコード
java
1import java.util.*; 2 3 4public class Main { 5 public static void main(String[] args) { 6 7 Scanner sc = new Scanner(System.in); 8 while(sc.hasNextLine()){ 9 String[] n = sc.nextLine().split(" "); 10 int age = Integer.parseInt(n[1]) * 3; 11 System.out.println(n[0] + " " + age); 12 } 13 } 14}
試したこと
上記ソースコードの配列nを文字列に直してみたのですが、名前も年齢も格納されてました。
具体的にどういう入力をしてエラー(例外)が起きたのか、質問文中(このコメント欄ではありません)に追記してください。
ご指摘ありがとうございます、入力内容を追記しました。
> 入力した内容は、Yamada 30です。
コードの見た目も、動かしてみても問題はないように見えます。
$ java Main
Yamada 30
Yamada 90
Hoge 12
Hoge 36
本当に、「Yamada <スペース1文字> 30 <ENTERキー押下>」のように、入力していますか?
Javaのバージョンや実行している環境(Windowsのバージョンなど)も併記してください。
申し訳ありません、先ほど入力しなおしたら動きました。
恐らく入力を誤ったものと思われます、お手数おかけしました。
それではその旨、説明とともに自己解決、自己回答で質問を閉じましょう。しかしながら既に回答をいただいているので、そちらへのコメント、BAなどと共に閉じてもよいと思います。判断はお任せします。
回答2件
あなたの回答
tips
プレビュー