質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

1112閲覧

Java 標準入力で、複数行の入力を数値の多重配列として格納する方法

Malson

総合スコア10

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2020/08/28 22:39

前提・実現したいこと

Scannerで読み取った複数行の入力データを、数値の多重配列として格納したい。
*import宣言は行われている

入力されるデータの例は下記のように、記号や文字は含まれない整数とコンマの文字列としています。
1,2,3,4,5
2,2,2,2,2
3,3,3,3,3
5,5,5,5,5

現状のコード

java

1~~~~~~~~~~~~ 2Scanner scanner = new Scanner(System.in); 3ArrayList<ArrayList<Integer>> numbers = new ArrayList<>(); 4 5while(scanner.hasNextLine()){ 6 String line = scanner.nextLine(); 7 String[] split_line = line.split(","); 8 9 int[] int_line = new int[split_line.length]; 10 for (int i = 0; i < split_line.length; i++) { 11 int_line[i] = Integer.parseInt(split_line[i]); 12 } 13 numbers.add(int_line); // ここでコンパイルエラー 14} 15

エラー表示

incompatible types: int[] cannot be converted to Integer numbers.add(int_line);

このままではコンバートできないという表示なので、ArrayListの定義に問題があるのか、理解できていない構文の問題でしょうか?
ご指導お願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ArrayList<ArrayList<Integer>> numbersなので、numbersの1要素は、ArrayList<Integer>
一方で、addしようとしている、int_lineは、int[]で型が合わない。

どちらかに型を合わせる必要がある。
例えば、
ArrayList<ArrayList<Integer>> numbers ではなく
ArrayList<int[]> numbers とか。

投稿2020/08/28 23:17

amiya

総合スコア1218

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問