Hilfe zur Eingabe über Konsole

thomasjung1

Grünschnabel
Hallo,
ic bin noch ein Anfänger in Java und habe folgendes Problem:

Ich soll bestimmte Zahlen über die Konsole eingeben und sortiert(mit TreeMap)wieder ausgeben. Dabe muss ich objektorientiert arbeiten. Das mit dem TreeMap funktioniert..Nur weiss ich nicht, wie ich die Zahlen in der Konsole eingeben muss.

Ich habe hierfür folgende Klassen definiert:

Zahl (abstract class)
SiebenUndAchtzig (extends Zahl)
VierUndDreissig(extends Zahl)
VierUndFünfzig(extends Zahl)
Zwei(extends Zahl)
Drei (extends Zahl)
Programm (mit Tree Map)


Der Code der Klasse "Programm"sieht folgendermaßen aus:

package de.ifw.swe;

import java.util.TreeMap;
import java.util.Map.Entry;
public class Programm {


public static void main(String[] args) {
new Programm().doWork(args);
}


private void doWork(String[] _args) {

TreeMap<Integer,Zahl> zahlen= new TreeMap<Integer, Zahl>();

zahlen.put(8, new Acht());
zahlen.put(5, new Fünf());
zahlen.put(87, new SiebenUndAchtzig());
zahlen.put(34,new VierUndDreissig());
zahlen.put(54, new VierUndFünfzig());
zahlen.put(2,new Zwei());


for (Entry<Integer, Zahl> entry : zahlen.entrySet()) {
System.out.println( entry.getKey());




}
}

}

Da ich ja über die Konsole die Zahl eintragen soll, habe ich der MEthode doWork() die String[] args übergeben.

Aber ich weiss nicht genau, wie ich das jetztz umsetzen soll?!!

Hat jmd. eine Idee und kann mir weiterhelfen?
BITTE...:rolleyes::rolleyes:

Gruß,
Thomas
 
Ich versteh dein Problem nicht so wirklich, versuche aber trotzdem mal zu helfen.
Als Anmerkung: Schreib deinen Javacode das nächste mal bitte in [code=java] Tags.

Du sagst, dass du die Zahlen in der Konsole eingeben sollst. String[] args in der main Methode liefert dir die Parameter die du beim Programmstart angegeben hast.

Ist das jetzt dein Ziel oder willst du das Programm so ändern, dass du während der Laufzeit Zahlen eingeben kannst die dann der TreeMap hinzugefügt werden und weisst nicht, wie du das realisieren sollst?

ODER

Weisst du nicht, wie du die Klassen dynamisch laden kannst? Klassen dynamisch laden kannst du dem Classloader.
Also z.B.
Java:
zahlen.put(8, ClassLoader.getSystemClassLoader().loadClass(
				"Acht").newInstance();
Da du die Zahlen nur als Zahl hast und sie aber als Zahlenwort (Acht anstatt 8) brauchst, musst du sie natürlich noch umwandeln. Dafür findest du hier ein Beispiel http://www.tutorials.de/forum/java/...t-zu-zahl-zahl-zu-zahlenwort.html#post1374980. Achte einfach auf Gross- und Kleinschreibung.
 
Zuletzt bearbeitet:
Von der Konsole kannst du so lesen:
Java:
BufferedReader in = new BufferedReader (new InputStreamReader( System.in)); 
String line = in.readLine();
int zahl = Integer.parseInt(line);

Das was du als args[] bekommst, kommt nicht von der Konsole im laufenden Programm, sondern sind Parameter die für den Programmstart übergeben werden können.

Was das mit der TreeMap und den Klassen soll, wird mir allerdings nicht so wirklich klar.
 
Mein Ziel ist es, das Prg. so zu ändern, dass während der Laufzeit Zahlen eingeben werden, die dann der TreeMap hinzugefügt werden.

Aber ich weiss halt nicht, wie ich das realisieren soll

die args, die in der Main-Methode sind, sind klar.

Ich meinte die args die ich der Methode DoWork übergeben habe...
 
Wie du Eingaben auf der Konsole machen kannst, hat ja schon zeja gezeigt.

Aber was soll der Kram mit den Klassen? Es soll objektorientiert ablaufen, soweit hab ich das verstanden. Ich kann auch kaum glauben, dass es wirklich so gedacht war, wie du es versuchst umzusetzen.

Anstatt für jede Zahl eigene Klassen zu basteln (viel Spaß dabei, wenn man mal betrachtet wie viele Zahlen es gibt xD) solltest du lieber auf die Klassen Integer oder Double zurückgreifen. Damit wäre der Spaß auch objektorientiert und man spart sich nen Haufen Arbeit (und damit meine ich nicht in erster Linie das Basteln all der Klassen).

Wie gesagt, ich kann mir echt nicht vorstellen, dass das was du da machst Sinn der Sache ist und wenn es eine Aufgabe von nem Lehrer oder so war, dann kann ich mir beim besten Willen nicht vorstellen, dass derjenige sich das so vorgestellt hatte ^^
 
Zuletzt bearbeitet:
ja, hast Recht..Das mit den Klassen pro Zahl hat auch echt keinen Sinn ergeben..
Ich habe die Aufgabe jetzt gelöst..

DANKE an ALLE, die geschrieben haben:)
 

Neue Beiträge

Zurück