- ベストアンサー
コマンドプロンプト上の標準入力で文字列と数値を比較して表示するプログラム
- プログラムを作成する際には、コマンドプロンプト上での標準入力を扱う方法を学ぶ必要があります。
- 入力された文字列と数値を、1つのクラスのフィールドとして定義することでデータを管理することができます。
- 入力されたデータを比較し、その結果を大きい順に表示するために、適切なデータ構造やソートアルゴリズムを使用する必要があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
長いですけど、作ってみました。 コメントも何もつけてないですが、わからないところがあったら質問してください。 // Personクラス public class Person implements Comparable { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } public int compareTo(Object obj) { Person other = (Person)obj; return other.age - this.age; } public String toString() { return "NAME : " + name + "\t\tAGE : " + age; } } // ここからメインのクラス import java.io.*; import java.util.*; public class InputPerson { public static void main(String[] args) throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); List people = new ArrayList(); while (true) { System.out.print("NAME : "); String name = reader.readLine(); if (name.equals("")) { break; } int age = 0; do { System.out.print("AGE : "); } while ((age = toDigit(reader.readLine())) < 0); people.add(new Person(name, age)); } System.out.println(""); show(people); } private static void show(List people) { Collections.sort(people); for (Iterator itr = people.iterator(); itr.hasNext(); ) { System.out.println(itr.next()); } } private static int toDigit(String str) { int result = 0; try { result = Integer.parseInt(str); } catch (Exception ex) { result = -1; } return result; } }