ERLEDIGT
NEIN
NEIN
ANTWORTEN
15
15
ZUGRIFFE
1811
1811
EMPFEHLEN
-
06.06.10 16:53 #1Davicito Tutorials.de Gastzugang
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
-
06.06.10 17:01 #2
Hi,
auf den ersten Blick fällt mir auf, dass du deine Strings mit "==" vergleichst. Versuche es mal mit
Code java:1 2 3
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
DosCoderMan kann mich für das verantwortlich machen, was ich hier schreibe, nicht für das, was andere verstehen.
Sollte ich mal Mist labern weist mich bitte darauf hin.
Ich freue mich über ein Danke, wenn ich helfen konnte!
-
06.06.10 17:40 #3Davicito Tutorials.de Gastzugang
...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?
-
06.06.10 18:46 #4Code java:
1
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.Geändert von HonniCilest (06.06.10 um 18:57 Uhr)
Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.
-
06.06.10 19:06 #5Davicito Tutorials.de Gastzugang
.. jo da muss args.length stehen
.
hab den Code nochmal überarbeitet, funktioniert trotzdem nicht !!
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
-
06.06.10 20:00 #6
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!Geändert von HonniCilest (06.06.10 um 20:08 Uhr)
Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.
-
06.06.10 20:50 #7Davicito Tutorials.de Gastzugang
ok ok, wenn ich: char c = args[0].charAt(i); hin schreibe, wird keine If-anweisung ausgeführt.
also ist irgendwo noch ein Fehler
-
Hi
lasse dir dochmal c ausgeben.Bei Problemen mit Codes, postet bitte den entsprechenden Codeausschnitt und setzt den in entsprechende Tags.
( [cpp] [/cpp] [css] [/css] [html] [/html] [java] [/java] [javascript] [/javascript] [php] [/php] [sql] [/sql] )
"Funktioniert nicht" ist keine Fehlermeldung. Bitte eine genaue Fehlerbeschreibung und, wenn vorhanden, Fehlermeldungen posten.
RegEx Tutorial
PHP Funktionsreferenz
-
06.06.10 21:26 #9Davicito Tutorials.de Gastzugang
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.
-
06.06.10 22:16 #10
Was auch immer du tust, bei mir funktioniert dies:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
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...Geändert von HonniCilest (06.06.10 um 22:22 Uhr)
Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.
-
06.06.10 23:19 #11Davicito Tutorials.de Gastzugang
Mann eh voll geil!! du hast mir sehr geholfen. Vielen Dank.
Ja ich bringe mir das jetzt alles selber bei. hab heute erst mit java angefangen weil ich im Studium vorher C, und C++ hatte und jetzt Java lernen muss. Ist schon etwas anderes diese Sprache. kann man mit den vorgängern nicht vergleichen.
Das macht es mir auch schwer einige eigenarten zu lernen
vielen dank noch mal
-
06.06.10 23:24 #12Davicito Tutorials.de Gastzugang
... Was genau bewirkt die Null in den Eckigen Klammern? args[0].charAt();
Ist das so zu verstehen, das eine Art Broadcarst auf alle Strings im String-Array geschaltet wird, und man somit den Zugriff auf den gesamten Text erhält?
Das ist mir neu!
Gruß, Davicito.
-
Mit 0 ist der erste String im Array gemeint.
In C, C++, Java etc. wird bei jedem Array generell bei 0 zu zählen angefangen.
-
07.06.10 06:45 #14
@Davicito
Wie lange programmierst du schon bzw. wie lange hast du die Nase in ein Buch oder Tutorials gesteckt? Weil deine letzte Frage war schon etwas arg krass
Man sagt, das Schwert eines Samurai sei seine Seele ...
Mit den Beiträgen ist es wie mit Schwertern: Je besser die Rohstoffe sind und je öfter man diese bearbeitet, desto hochwertiger sind sie.
Das Schmieden ist eine Kunst; Das Schreiben auch ;)
-
07.06.10 08:47 #15Davicito Tutorials.de Gastzugang
Danke Jungs, das reicht!
Ähnliche Themen
-
String auf unzulässige Zeichen überprüfen
Von bozkan im Forum PHPAntworten: 4Letzter Beitrag: 08.02.09, 12:12 -
string auf nicht erlaubte zeichen überprüfen
Von Thundy im Forum PHPAntworten: 6Letzter Beitrag: 23.09.08, 23:05 -
Überprüfen ob String mit angegebenden Zeichen anfängt
Von FBIagent im Forum C/C++Antworten: 7Letzter Beitrag: 16.12.05, 02:24 -
String auf Nichtnummerische Zeichen überprüfen
Von redlama im Forum PHPAntworten: 4Letzter Beitrag: 16.09.04, 10:42 -
String Zeichen zählen lassen
Von KristophS im Forum PHPAntworten: 4Letzter Beitrag: 04.06.04, 15:58





Zitieren

Login





