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

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

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

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

Q&A

解決済

2回答

1705閲覧

ArrayListを使ったプログラムについて

nejirin_boy

総合スコア21

Java

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

0グッド

0クリップ

投稿2018/01/01 12:59

###前提・実現したいこと
キーボードから数字を入力し、ArrayListを使って月を配列に入れたいと思っています。

###発生している問題・エラーメッセージ

sort13.java:29: エラー: ';'がありません ArrayList<Integer> todo.month = new ArrayList<Integer>();

###該当のソースコード

Java

1import java.util.ArrayList; 2import java.util.Comparator; 3import java.io.*; 4 5class ToDo{ 6 int month; 7} 8 9class sort13 10{ 11 public static void main(String[] args) throws IOException 12 { 13 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 14 15 ArrayList<ToDo> ToDoList = new ArrayList<ToDo>();//Arraylist追加 16 17 while(true){ 18 System.out.println("予定を追加するなら1を入力。予定を月順で表示するなら2、優先度順で表示するなら3を入力。"); 19 20 String str = br.readLine(); 21 int num = Integer.parseInt(str); 22 23 if(num == 1){ 24 25 do{ 26 System.out.println("月を入力して下さい(1〜12)"); 27 28 String month = br.readLine(); 29 ArrayList<Integer> todo.month = new ArrayList<Integer>(); 30 31 }while(!(1 <= todo.month && todo.month <= 12)); 32 33 todo.add(todo); 34 } 35 System.out.println(todo); 36 } 37 } 38}

###試したこと
配列変数名など変えてコンパイルしたみましたが、エラーは改善されませんでした。

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

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

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

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

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

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

guest

回答2

0

ベストアンサー

エラー処理が足りていなかったりしていたので、修正しました。
ご質問のエラーについても解消されています。
わからないことがあったらコメントください。

Java

1package testJava; 2 3import java.io.BufferedReader; 4import java.io.IOException; 5import java.io.InputStreamReader; 6import java.util.ArrayList; 7 8class sort13 { 9 10 /** 11 * メイン処理 12 * @param args 13 * @throws IOException 14 */ 15 public static void main(String[] args) throws IOException { 16 17 // 標準入力を待ち受けるリーダーを取得 18 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 19 20 // TODOクラスリストを初期化 21 ArrayList<ToDo> ToDoList = new ArrayList<ToDo>();//Arraylist追加 22 23 // 処理継続フラグを初期化 24 boolean isContinue = true; 25 26 // 無限にループ 27 while (isContinue) { 28 29 // モード選択を促す 30 System.out.print("予定を追加するなら1を入力。予定を月順で表示するなら2、優先度順で表示するなら3を入力。処理を終了する場合は0を入力⇒"); 31 32 // モード取得 33 String mode = br.readLine(); 34 35 // 予定追加モードの場合 36 if (mode.equals("1")) { 37 38 // 月を初期化 39 Integer month; 40 41 do { 42 43 // 月の入力を促す 44 System.out.print("月を入力して下さい(1〜12)⇒"); 45 46 // 月をInteger型に変換して取得 47 month = getNumeric(br.readLine()); 48 49 // 入力内容が1~12の場合はLoopを抜ける 50 } while (!(month != null && 1 <= month && month <= 12)); 51 52 // TODOオブジェクト作成 53 ToDo todo = new ToDo(); 54 todo.setMonth(month.intValue()); 55 56 // TODOリストに追加 57 ToDoList.add(todo); 58 59 // 予定を月順で表示モードの場合 60 } else if (mode.equals("2")) { 61 62 // 予定を優先度順で表示モードの場合 63 } else if (mode.equals("3")) { 64 65 // 処理終了モードの場合 66 } else if (mode.equals("0")) { 67 68 isContinue = false; 69 70 // その他の場合 71 } else { 72 System.out.println("不正な入力です。正しい値を入力してください"); 73 } 74 75 // 区切り文字を出力 76 System.out.println("=========="); 77 78 // 全TODOの月を出力 79 System.out.println("●TODOの状況"); 80 for (int i = 0; i < ToDoList.size(); i++) { 81 System.out.println(i + 1 + "件目のTODO : " + ToDoList.get(i).getMonth()); 82 } 83 84 // 区切り文字を出力 85 System.out.println("=========="); 86 87 } 88 89 // 終了する旨を出力 90 System.out.println("処理を終了します"); 91 92 } 93 94 /** 95 * 入力内容をInteger型に変換 96 * 変換できない場合は null を返却 97 * @param str 変換対象文字列 98 * @return 変換後Integerオブジェクト 99 */ 100 private static Integer getNumeric(String str) { 101 try { 102 Integer.parseInt(str); 103 return Integer.parseInt(str); 104 } catch (NumberFormatException e) { 105 return null; 106 } 107 } 108}

以下はTODOオブジェクトクラスです。

Java

1package testJava; 2 3public class ToDo { 4 5 // 月 6 private int month; 7 8 // 月のゲッター 9 public int getMonth() { 10 return month; 11 } 12 13 // 月のセッター 14 public void setMonth(int month) { 15 this.month = month; 16 } 17 18} 19

投稿2018/01/06 19:08

yamashita_yuich

総合スコア316

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

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

nejirin_boy

2018/01/11 03:52

ベストアンサーに選ぶのが遅くなってしまい、申し訳ありません。
nejirin_boy

2018/01/11 04:02

上のソースコードをコンパイルしてみましたが、うまくいきませんでした。 下のToDoオブジェクトクラスはどの様に扱えば良いのでしょうか?
guest

0

ArrayList<Integer> todo.month = new ArrayList<Integer>();

オブジェクトの宣言、生成を行っているところだと思いますが、「todo.month」とドットがあるのは文法上まずいと思います。

投稿2018/01/01 13:52

HogeAnimalLover

総合スコア4830

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

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

nejirin_boy

2018/01/03 04:12

回答ありがとうございます。 具体的にどの様に変えれば良いでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問