Wie kann man den Übergabeparameter-String[] args- auf ein Zeichen überprüfen lassen?

D

Davicito

Hi Leute, möchte der Konsole eine Rechenoperation (zB. 8-4 ) übergeben und prüfen lassen, um welche Rechenoperation es sich handelt.
Je nach RechenOp. soll das Programm in den betreffenden If-Zweick springen und nur den Namen der Operation ausgeben.
Funktioniert allerdigs nicht!

Worann liegt das (s.u. Java-Code)

Liebe Grüße, Davicito

Java-Code:
public class Rechner {

public static void main( String[] args ) {

for(int i=0; i<s.length() ;i++)
{

char c = args.charAt();

if(c == "+")
{
System.out.println("Addition");
}
if(c == "-")
{
System.out.println("Subtraktion");
}
if(c == "/")
{
System.out.println("Division");
}
if(c == "*")
{
System.out.println("Multiplikation");
}

} // Ende der Forschleife
} // Ende des Interfce
} // Ende des Programms bzw. Klasse
 
Hi,
auf den ersten Blick fällt mir auf, dass du deine Strings mit "==" vergleichst. Versuche es mal mit
Java:
if(c.equals("+"){
   // tu was cooles
}

Ansonsten wäre es sinnvoll, wenn du deinen Code in Java-Tags setzt und wenigstens beschreibst, was nicht geht/Fehlermeldungen.

Ciao
DosCoder
 
...ok das mit der eguals-Methode war gar nicht mal so schlecht ^^
mein Problem ist noch in der 1. Zeile der Forschleife. Da ich der Konsole einen Wert übergebe (6+7), der in die Variable args vom Typ String-Array geht,
kann ich die charAt() Methode nicht benutzen um eindelene Elemente in eine Cha-Variable(s. char c) zuüberfüren. Weil beite Typen unterschiedlich sind!

Also wie kann ich nun ein Element String-Arrays in eine Char-Variable übergeben, um anschließend mit der equals-Methode vergleichen zu können?
 
Java:
char c = args[0].charAt(i); //args[0] greift auf das erste Element des Arrays zu

Edit:

c ist bei dir eine char-Variable. Bei deinen if-Abfragen vergleichst du auf Strings der Länge 1 wegen der Zeichen in " (einzelnes Anführungszeichen). Setzt du die Zeichen in ' (einzelnes Hochkomma), dann wird dieses als char angesehen.
Was ist bei dir s? Das s macht auf mich den Eindruck, als wüsstest du nicht was du tust, bzw. dass du dir den Code teilweise zusammenkopiert hast. Ich nehme an s soll auch args[0] heißen.
 
Zuletzt bearbeitet:
.. jo da muss args.length stehen ^^.

hab den Code nochmal überarbeitet, funktioniert trotzdem nicht !! :-(
Code:
public class Rechner {
	
	public static void main( String[] args ) {
		
	for(int i=0; i<args.length; i++)
       {		  
	 
         char c  = args[i].charAt(i);		  
    	  
         if(c == '+')
          {
    	    System.out.println("Addition");
          }
		  if(c == '-')
          {
    	    System.out.println("Subtraktion");
          }
		  if(c == '/')
          {
    	    System.out.println("Division");
          }
		  if( c == '*')
          {
    	    System.out.println("Multiplikation");
          }
	      
       } // Ende der Forschleife
   }    // Ende des Interfce 
} // Ende des Programms bzw. Klasse
 
1. mit args.length erhälst du die Länge deines Arrays und nicht von deinem Term, d.h. es sollte eher so heißen: args[0].length(). args[0] ist das erste Element, was du von der Console bekommst, d.h. dein Term.
2. Ebenso muss bei dir in der Schleife args[0] und nicht args[ i ] stehen!

Zur Erklärung:
Wenn du folgenden Satz über die Konsole übergibst: "Hallo schöner neuer Tag.", dann sieht dein argv wiefolgt aus:
argv[0] -> Hallo
argv[1] -> schöner
argv[2] -> neuer
argv[3] -> Tag.
Da dein Term aber keine Whitespaces enthält, ist vermutlich nur argv[0] befüllt und enthält deinen vollständigen Term!
 
Zuletzt bearbeitet:
ok ok, wenn ich: char c = args[0].charAt(i); hin schreibe, wird keine If-anweisung ausgeführt.
also ist irgendwo noch ein Fehler
 
Hallo, mein Problem besteht einpar Zeilen vorher!
In der Variablen c (Typ char) ist noch nichts übergeben worden. Daher kann ich mir auch nichts ausgeben lassen.
wollte nur wissen, wie ich aus einem String-Array (String[] args) einzelne Zeichen in meine c- Variable überführen kann,
um so beispielsweise Vergeliche mit den oben dargestellten If-Blöcken anzustellen.
 
Was auch immer du tust, bei mir funktioniert dies:

Java:
public class Rechner {
	public static void main(String[] args) {
		for(int i=0; i<args[0].length(); i++) //Eventuell hast du wieder das nicht geändert...
		{ 
			char c = args[0].charAt(i); 

			if(c == '+')
			{
				System.out.println("Addition");
			}
			else if(c == '-')
			{
				System.out.println("Subtraktion");
			}
			else if(c == '/')
			{
				System.out.println("Division");
			}
			else if( c == '*')
			{
				System.out.println("Multiplikation");
			}
			else
			{
				//System.out.println("Kein Operator");
			}
		}
	}
}

Ich schlage vor du gehst den Code durch und durchdenkst nochmal alles. Aller Anfang ist schwer... Bringst du dir Java eigentlich selbst bei oder hast du das in der Schule?

Falls es bei dir immernoch nicht hinahut, könnte ich mir vorstellen, dass bei der Übergabe mit der Kommandozeile etwas nicht stimmt. Lass dir doch dann einfach mal dein arg[0] ausgeben...
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück