Kommandozeilenparameter

Status
Nicht offen für weitere Antworten.

marduk

Mitglied
Hallo Leute,

ich habe eine Klasse mit der ich mehrere geometrische Objekte erzeugen kann. Die Syntax um eine Objekt zu erzeugen ist die folgende : java ShapeTest [r x y height widht] [c x y radius] [l x1 x2 y1 y2]. Es war jedoch nur möglich damit jeweils ein Objekt zu erzeugen. Nun soll ich mit Hilfe der Klasse Vektor ermöglichen, beliebig viele Objekte mit einem Aufruf zu erzeugen. Hat jemand eine Idee wie man das machen könnte?

Thx für eure Hilfe
marduk
 

mic_checker

Top Contributor
D.h. der User musste sich für eine Variante entscheiden:
1) r x y height width
2) c x y radius
3) l x1 x2 y1 y2

Du kannst doch in einer for-Schleife args[] durchgehen. Wo ist da das Problem dabei?
 

marduk

Mitglied
Ja, vorher konnte immer nur ein Objekt erzeugt werden und jetzt sollen eben mithilfe der Klasse Vector beliebig viele erzeugt werden können. Wie meinst du das mit der for-schleife? Das hätte doch nichts mit der Klasse Vector zu tun. Oder verstehe ich dich nicht richtig.

LG
marduk
 
R

Roar

Gast
ich hab das gefühl wir verstehen dich nicht richtig. was willst du machen udn was hast du gemacht? :? :?
 

marduk

Mitglied
OK, also ich habe eine Klasse geschrieben mit der man verschiedene geometrische Objekte erzeugen kann. Die genaue Syntax habe ich oben schon beschrieben. Man konnte also z.b mit r 12 3 12 3 ein Rechteck mit den Koordinaten 12 und 3, der Höhe 12 und der Breite 3 erzeugen. Dann hat das Programm lediglich ausgegeben, dass ein Rechteck erzeugt wurde. Wenn man nun aber noch einen Kreis erzeugen wollte, musst man das Programm neustarten. Das soll jetzt verändert werden, indem man mithilfe der Klasse Vector direkt mehrere Objekte erzeugen kann, also beispielsweise
java ShapeTest r 12 3 4 5 c 4 5 6 l 32 4 3 21.

Ist es jetzt verständlich?

marduk
 

mic_checker

Top Contributor
Ja ok. Du kannst args mit einer for-Schleife durchgehen und schauen was genau du erzeugen willst (also ob es "r" ist oder "l"), dann neue Objekte des Typs im Vector speichern)...dabei gehst du array einfach bis zum schluss durch.

Eigentlich recht klar oder nicht?
 

marduk

Mitglied
also, ich bin am gerade am rumprobieren. Bisher habe ich folgendes :
Code:
	for(int i=0; i<argv.length; i++){
			if (argv[i]== 'r' && Integer.parseInt(argv[i+1])==
Meine Idee dabei ist die folgende. Ich laufe das String[] argv durch und immer wenn ich ein c, r, oder l finde, müssen diie im Falle von c drei drauffolgenden Stellen mit Integerwerten und im Falle von r un l die vier folgenden Stellen mit Integerwerten belegt sein. Wie kann ich aber ausdrücken, dass argv[i+1] lediglich irgendein Integerwert sein muss?
 

mic_checker

Top Contributor
1. Strings vergleicht man nicht mit ==
2. Kannst du das so wie es da steht nicht bedenkenlos benutzen -> guck mal auf die Werte von deinem i
 
G

Gast

Gast
So sollte es gehen:

if ( argv.equals("r"){
int x= Integer.parseInt(argv[i+1]);
int y= Integer.parseInt(argv[i+2]);
int b= Integer.parseInt(argv[i+3]);
int l= Integer.parseInt(argv[i+4]);
}// if ( argv.equals("r"){

Auf diese Weise kannst Du jede Form abklappern. Wenn in Deiner Eingabe zb. auf "r" nur 3 Zahlen folgen, gibts sofort ine Fehlermeldung!

Gruss, Alex

http://www.interscore-web.com
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben