public class MenschTest {
public final static int INPUT = 1;
public final static int SHOW = 2;
public final static int EXIT = 3;
public final static String[] menu = { "Geben Sie eine Person ein", "Zeige alle Personen an", "Exit" };
public final static String seperator = "----------------------------";
public static void main(String[] args) {
ArrayList<Mensch> list = new ArrayList<Mensch>();
Scanner in = new Scanner(System.in);
int selected = 0;
do {
selected = inputOption(in);
switch (selected) {
case INPUT:
list.add(inputPerson(in));
break;
case SHOW:
showList(list);
break;
case EXIT:
System.out.println("\nAuf Wiedersehen!\n");
}
} while (selected != EXIT);
}
private static int inputInt(Scanner scanner, String label) {
int value = 0;
boolean ok = false;
do {
System.out.print(label + "\t");
try {
value = Integer.parseInt(scanner.next());
ok = true;
} catch (NumberFormatException e) {
System.err.println("Bitte eine Zahl eingeben!");
}
} while (!ok);
return value;
}
private static Mensch inputPerson(Scanner scanner) {
System.out.println("Person eingeben:");
String firstName = inputText(scanner, "Vorname:\t");
String lastName = inputText(scanner, "Nachname:\t");
int age = inputInt(scanner, "Alter:\t");
return new Mensch(firstName, lastName, age);
}
private static String inputText(Scanner scanner, String label) {
String str = null;
boolean ok = false;
do {
System.out.print(label);
str = scanner.next();
if (str.length() > 0)
ok = true;
} while (!ok);
return str;
}
private static int inputOption(Scanner in) {
int val = 0;
do {
System.out.println("\n" + seperator + "\n\tAuswahl\n" + seperator);
for (int i = 0; i < menu.length; i++)
System.out.println((i + 1) + ". " + menu[i]);
System.out.println(seperator);
val = inputInt(in, "Auswahl [1-3]:");
if (val >= 1 && val <= 4)
return val;
System.out.println("Auswahl ungueltig");
} while (true);
}
private static void showList(ArrayList<Mensch> list) {
System.out.println(seperator + "\n\tListe\n" + seperator);
for (Mensch m : list) {
System.out.println(m);
System.out.println(seperator);
}
}
}