tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
15
ZUGRIFFE
1811
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Davicito 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
     

  2. #2
    Avatar von DosCoder
    DosCoder DosCoder ist offline Mitglied Gold
    Registriert seit
    Sep 2008
    Ort
    Kreis Würzburg(Bayern)
    Beiträge
    228
    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
    DosCoder
     
    Man 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!

  3. #3
    Davicito 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?
     

  4. #4
    Avatar von HonniCilest
    HonniCilest HonniCilest ist offline Mitglied Platin
    Registriert seit
    Jun 2009
    Ort
    Java Insel
    Beiträge
    501
    Code 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.

  5. #5
    Davicito 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
     

  6. #6
    Avatar von HonniCilest
    HonniCilest HonniCilest ist offline Mitglied Platin
    Registriert seit
    Jun 2009
    Ort
    Java Insel
    Beiträge
    501
    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.

  7. #7
    Davicito 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
     

  8. #8
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    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

  9. #9
    Davicito 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.
     

  10. #10
    Avatar von HonniCilest
    HonniCilest HonniCilest ist offline Mitglied Platin
    Registriert seit
    Jun 2009
    Ort
    Java Insel
    Beiträge
    501
    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.

  11. #11
    Davicito 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
     

  12. #12
    Davicito 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.
     

  13. #13
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.504
    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.
     

  14. #14
    Avatar von Akeshihiro
    Akeshihiro Akeshihiro ist offline Mitglied Platin
    Registriert seit
    Aug 2008
    Ort
    Kirchlengern (NRW)
    Beiträge
    647
    @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 ;)

  15. #15
    Davicito Tutorials.de Gastzugang
    Danke Jungs, das reicht!
     

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 08.02.09, 12:12
  2. Antworten: 6
    Letzter Beitrag: 23.09.08, 23:05
  3. Antworten: 7
    Letzter Beitrag: 16.12.05, 02:24
  4. Antworten: 4
    Letzter Beitrag: 16.09.04, 10:42
  5. String Zeichen zählen lassen
    Von KristophS im Forum PHP
    Antworten: 4
    Letzter Beitrag: 04.06.04, 15:58