Kommandozeilen-Parameter

a16rgi11os

Mitglied
Hallo zusammen,
ich sitze hier an einem kleinen Problem und ich hoff ihr könnt mir weiterhelfen.
Ich bin dabei ein Programm zu schreiben, welches zwischen Zahlensystemen umrechnen kann. Ich habe bereits zwei Unterprogramme geschrieben einmal "String alsBasis(int zahl, int basis)" welches mir eine übergebene Zahl in die Basis umrechnet und zum anderen "int alsInt(String zahl, int Basis)" welches mir den String wieder in eine Integer Zahl umrechnet. Diese beiden Unterprogramme laufen auch ohne Probleme und stimmen, diese hat ein Tutor bereits begutachtet. Auf nachfrage kann ich die Codes gerne per Nachricht schicken, ich darf sie jedoch nicht online stellen, da es sich bei dem Problem um eine Hausarbeit handelt, ich hoffe ihr könnt mir dennoch einen Hinweis geben.
Es heißt nun, dass das Programm über Kommandozeilen-Parameter gesteuert werden soll und ich dazu in meiner Main zwei String-Variablen für die Zahl und deren Basis anlegen soll die ersten beiden Werte aus dem args-Array zuweisen soll.
Java:
String zahl = args[0];
	String basis = args[1];

Nun zu meinem Problem, ich soll nun mit der alsInt-Methode die übergebene Zahl in einen Integer-Zahl umwandeln. Jedoch kann dies doch gar nicht funktionieren, da ich der alsInt-Methode doch einen String und eine Integer-Zahl übergeben muss, aber ich musste zwei String-Variablen festlegen?
Über Tipps wäre ich sehr dankbar.
mfg
a16rgi11os
 
Nun zu meinem Problem, ich soll nun mit der alsInt-Methode die übergebene Zahl in einen Integer-Zahl umwandeln. Jedoch kann dies doch gar nicht funktionieren, da ich der alsInt-Methode doch einen String und eine Integer-Zahl übergeben muss, aber ich musste zwei String-Variablen festlegen?

Die Signatur von main() ist main(String[] args). Somit wird, egal was Du übergibst, als String-Argument in das String-Array eingelesen. Willst Du diese Strings z.B. als int weiterverarbeiten, so kannst Du die Wrapper-Klasse Integer verwenden, welche die Methode parseInt(String) bereitstellt d.h. in diesem Fall z.B. parseInt(args[1])
 
Sorry wenn ich mich nochmal melde, aber das ich noch nicht so ganz verstanden.
Java:
public static void main(String[] args) {
		
		String zahl = args[0];
		String basis = args[1];
		
		int a = alsInt(zahl, parseInt(basis));

Wenn ich das so mache, funktioniert dies auch noch nicht, gibt es da irgend ne andere Möglichkeit, oder hab ich da noch was vergessen?
Ich bin leider ein totaler Anfänger und versuch mich erst seit ca 3 Wochen an Java.
 
Danke, aber Google hab ich schon ausführlich befragt.
Ich habe vergessen, dass ich keine bereits vorhandenen Unterprogramme welcher zur Umrechnung dienen wie zb. Integer verwenden darf, das muss alles mit den selbst geschriebenen Unterprogrammen geschehen.
 
Die Methode parseInt(...) ist in der Klasse Integer zu finden. Das müsstest du beim Aufruf der Methode mit angeben:
Java:
int a = alsInt(zahl, Integer.parseInt(basis));

Wenn du nur deine eigenen Methoden nutzen darfst, dann kannst du die Zahl basis natürlich auch mit
Java:
alsInt(basis, 10)
umrechnen. Wenn die Zahl im Dezimalsystem angegeben wurde.
 
Zuletzt bearbeitet von einem Moderator:
Dann nimmst du den String

123

Nimst den ersten Buchstaben String.charAt(0);

und schaust welche zahl es ist

if (char == 1)
meinezahl += 100;

bei 2. machst du + 20

und ddann + 3

die summe ist deine konvertierte Zahl.
 

Neue Themen


Zurück
Oben