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

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

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

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

Q&A

解決済

2回答

5312閲覧

Javaでリストの内容を表示させたい

aiueoaiueoaiue

総合スコア94

Java

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

0グッド

0クリップ

投稿2017/12/29 14:23

編集2017/12/29 17:06

#内容
Javaでリストを使って値を格納しその中身を確認するためにリストの中身を表示させたいのですがエラーが出てしまします。調べても意味が良く理解できなかったので解決できる方お願いします。
#該当している部分のソース

java

1public class HelloWorld{ 2 ArrayList<Integer> a = new ArrayList<Integer>(); 3 ArrayList<Integer> b = new ArrayList<Integer>(); 4 ArrayList<Integer> c = new ArrayList<Integer>(); 5 int[] a1 = new int[3]; 6 int[] b1 = new int[3]; 7 int[] c1 = new int[3]; 8 public static void main(String args[]){ 9 10 try{ 11 File file = new File("C:\Users\○○\test.txt"); 12 13 if (checkBeforeReadfile(file)){ 14 BufferedReader br = new BufferedReader(new FileReader(file)); 15 String str; 16 while((str = br.readLine()) != null){ 17 List<Integer> ints = parse_line(str); 18 for (int i = 0; i < 3; i++) { 19 for(int j = 0; i < 3; j++){ 20 if(i == 0){ 21 a.add(ints.get(j)); 22 a1[i] = a.get(j); 23 } 24 else if(i == 1){ 25 b.add(ints.get(j)); 26 b1[i] = b.get(j); 27 } 28 else{ 29 c.add(ints.get(j)); 30 c1[i] = c.get(j); 31 } 32 } 33 } 34 for (int i = 0; i < 3; i++) { 35 System.out.println(a1[i]); 36 } 37 } 38 39 br.close(); 40 41 } 42 else{ 43 System.out.println("ファイルが見つからないか開けません"); 44 } 45 } 46 catch(FileNotFoundException e){ 47 System.out.println(e); 48 } 49 catch(Exception e){ 50 System.out.println(e); 51 } 52 } 53}

#エラーメッセージ

HelloWorld.java:28: エラー: staticでない変数 aをstaticコンテキストから参照することはできません
a.add(ints.get(j));
^
HelloWorld.java:29: エラー: staticでない変数 a1をstaticコンテキストから参照する ことはできません
a1[i] = a.get(j);
^
HelloWorld.java:29: エラー: staticでない変数 aをstaticコンテキストから参照することはできません
a1[i] = a.get(j);
^
HelloWorld.java:32: エラー: staticでない変数 bをstaticコンテキストから参照することはできません
b.add(ints.get(j));
^
HelloWorld.java:33: エラー: staticでない変数 b1をstaticコンテキストから参照する ことはできません
b1[i] = b.get(j);
^
HelloWorld.java:33: エラー: staticでない変数 bをstaticコンテキストから参照することはできません
b1[i] = b.get(j);
^
HelloWorld.java:36: エラー: staticでない変数 cをstaticコンテキストから参照することはできません
c.add(ints.get(j));
^
HelloWorld.java:37: エラー: staticでない変数 c1をstaticコンテキストから参照する ことはできません
c1[i] = c.get(j);
^
HelloWorld.java:37: エラー: staticでない変数 cをstaticコンテキストから参照することはできません
c1[i] = c.get(j);
^
HelloWorld.java:42: エラー: staticでない変数 a1をstaticコンテキストから参照する ことはできません
System.out.println(a1[i]);
^
エラー10個

#補足
ソースを全て載せると長くなるので該当している恐れのある部分を載せてあります。
自分なりに修正し、最初に比べてエラーが減った状態になってます。
#追記
修正し、次は新たなエラーが見つかってしまいました。
HelloWorld.java:24: エラー: 例外Exceptionは報告されません。スローするには、捕捉 または宣言する必要があります
List<Integer> ints = parse_line(str);
^
エラー1個
#追記の追記
例外のエラーはプログラムを修正して消えたのですが、次は実行した時にエラーが出ました。
java.lang.IndexOutOfBoundsException: Index 3 out-of-bounds for length 3
配列の範囲を超えてしまってるのが原因と言ってるエラーっぽいのですが、私にはわかりませんでした。

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

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

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

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

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

guest

回答2

0

つSystem.out.println(list)

これで、Listと各要素のtoString()が呼び出されて中身が表示されます。

投稿2017/12/29 15:59

hichon

総合スコア5737

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

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

aiueoaiueoaiue

2017/12/29 16:06

listにかえるとシンボルが見つからないと表示されました。
hichon

2017/12/29 17:00

listの部分はあなたの表示したいListに読み替えて下さい。
guest

0

ベストアンサー

エラー: staticでない変数 ***をstaticコンテキストから参照す ることはできません

結論から言うと、各変数の前にstaticを付けてください。

エラー: printlnに適切なメソッドが見つかりません(int,int,int)

System.out.printlnなどのprintlnメソッドは引数1個のものしか存在しません。
そのメソッドにいくつも引数渡されてもプログラムのほうはどう処理すればいいのかわからないのです。

投稿2017/12/29 14:32

編集2017/12/29 15:26
swordone

総合スコア20651

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

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

aiueoaiueoaiue

2017/12/29 14:43

エラー文とソースを修正しました。
aiueoaiueoaiue

2017/12/29 15:29

staticは宣言文のところにつけるんですか? それともmainメソッドの中でいちいちつけるんですか?
swordone

2017/12/29 15:33

宣言文のところです。
aiueoaiueoaiue

2017/12/29 15:49

修正してエラーは1つに減りました。ソースが足りなければまた捕捉します。
swordone

2017/12/29 16:57

parse_lineというメソッドでExceptionを投げることを宣言しているのに、呼び出し側でキャッチもスロー宣言もしていないためのエラーです。 「検査例外」か「チェック例外」で調べてください。
aiueoaiueoaiue

2017/12/29 17:08

catchのIOExceptionのIOを取るとエラーが消えました。 次は以下のようなエラーが出たのですが、これは配列の範囲を超えてしまっているという意味なのでしょうか? java.lang.IndexOutOfBoundsException: Index 3 out-of-bounds for length 3
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問