Ich bräuchte mal die Hilfe…
Ich bin kein guter Java Programmierer aber es reicht mir aus. Das Problem ist ich weiß nicht wie ich Argumente Prüfen kann so dass er Überprüft ob Hinter dem Haupt Command noch etwas steht z.B. /hilfe 1
und nicht nur /hilfe also habe ich gedacht
Das Problem ist ich weiß nicht wie ich Argumente Prüfen kann
so dass er Überprüft ob Hinter dem Haupt Command noch etwas
steht z.B. /hilfe 1
und nicht nur /hilfe also habe ich gedacht
if (args[0] == „1“) {
}
Im Prinzip passt das schon fast.
Sie sollten vielleicht als erstes mit args.length die Größe des Parameter-Arrays (= Anzahl der Parameter) abfragen. Dann wissen Sie schon mal, aus wie vielen Teilen Ihre Argument-Liste besteht.
Die können Sie sich dann einzeln vornehmen. Da die einzelnen Elemente des Arrays Strings sind, sollten Sie sie aber nicht mit == vergleichen, sondern mit der Methode equals(). Es ist nämlich nicht garantiert, dass zwei Strings, welche die gleiche Zeichenkette repräsentieren, auch IDENTISCH sind. Gleich hingegen sind sie. Also:
if („1“.equals(args[0])) { … }
Je nachdem, wie viele Parameter Sie haben und wie es dann weitergehen soll, ist evtl. statt „if“ ein switch/case-Konstrukt besser. Seit Java 7 geht das auch mit Strings.
Generell ist Java übrigens nicht gerade die Top-Programmiersprache zum Basteln von Kommandozeilen-Tools…
zu deinem Beispiel /hilfe 1 du musst bis die Position bis zum Leerzeichen ermitteln (zwischen hilfe und 1).
und dann einfach bis zu dieser Position abschneiden.
im Grunde ist es Ganz einfach. Als Beispiel macht sich die main Methode ja immer ganz Gut.
Im Voraus noch was zur Übergabe des String[] args.
args ist ein Array von Strings … und genau so wird es auch ausgelesen.
public static void main(String[] args) {
System.out.println(„Test“);
/* Einzelne Argumente auslesen und ausgeben lassen */
for (String s: args) {
System.out.println(s);
}
/* Alternative */
for (int x = 0; x
Hallo Philip,
du könntest den Eingabestring in ein char-Array umwandeln, welches du auf den Befehl "hilfe"hin überprüfst, aber die Schleife bis zum Ende deines Arrays weiterlaufen lässt. Wenn da dann noch Zahlen stehen, kannst du die einfach erkennen. Bei einstelligen Zahlen ist es logischerweise immer der letzte Char.
Ich hoffe ich konnte dir weiterhelfen,
mit freundlichen Grüßen
m_amann
hi,
zum beispiel:
if (args[0].equals(„hilfe“)) {
if ((args.length != 2) {
// fehler
} else {
String param = args[1];
…
}
}
Das Problem ist ich weiß nicht wie ich Argumente Prüfen kann
so dass er Überprüft ob Hinter dem Haupt Command noch etwas
steht z.B. /hilfe 1
und nicht nur /hilfe
Es geht dir darum, Übergabeparameter vom Programmaufruf auszuwerten?
Diese werden, wie von dir geschrieben, im args-Array übergeben. Um mehr als einen Parameter auszuwerten musst du einfach auf die anderen Elemente des Arrays zugreifen, also args[1], args[2], usw.
Wie viele Parameter dein Programm erhalten hat, kannst du herausfinden, indem du die Eigenschaft
args.length
ausliest.
Du kannst dann mit einer Schleife wie dieser:
for (int i = 0; i
alle Parameter auswerten.
Gruß vom Linuxxer
Ich bin auch nur Anfänger und verstehe bereits Dein Problem nicht : Wo gibt Du denn Argumente ein und wie sollen diese überprüft werden ?
Dein Beispiel sieht mir sehr nach UNIX-Script-Programmierung aus und hier bezieht sich die Anzahl der Argumente wohl auf den dieses Script aufrufenden Befehl, dem ich weitere Angaben mitgeben kann ( oder auch nicht ).
Ich muss also annehmen, dass die von Dir gesuchten Argumente ebenfalls durch den Programm/Methoden-Aufruf mitgegeben wurden - und hier sollte doch mit @param ein Makro „Methoden-Parameter“ aufgerufen werden können. Wie gesagt, auch ich bin hier nur Anfänger …
man könnte natürlich die Argumente selber prüfen, d.h. wenn args[0] den String „-hilfe“ enthält (Vorsicht: Strings sind Objekte und müssen mit der equals-Methode verglichen werden!), dann greift man auf das nächste Element args[1] zu.
Aber ich würde empfehlen, für diese Aufgabe eine fertige Bibliothek einzubinden. Das Problem, Kommandozeilen-Argumente zu verarbeiten, ist ja nicht neu, und die Lösungen, die es bereits dafür gibt, sind in der Regel wesentlich besser und robuster, als alles, was man sich selber auf die Schnelle zusammenstrickt.
Beim Versuch, Deine Aufgabe umzusetzen, habe ich mich an folgenden Blog-Einträge zum Command Line Interface von Apache Commons orientiert:
ich verstehe die Frage nicht ganz.
Und es gibt sehr viele Java-Tutorials auf der Welt. www.google.de
args ist ein Array mit args.size() kann man prüfen wie viele Argumente übergeben wurden.
mit args[x] kann man auf jedes Element zugreifen.
if (args.size()>0) {
//dann gibt es Argumente
for (int i=0;i
sprechen. Der Programmname steht in args[0], das erste Argument in args[1], das zweite in args[2] u.s.w. Natürlich nur, wenn die Argumente angegeben sind, sonst gibt es eine IndexOutOfBoundsException. Also die Länge von args prüfen über args.length.