[Java] String auswahl

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von knight008, 6. Oktober 2010 .

Schlagworte:
  1. 6. Oktober 2010
    String auswahl

    Hallo,

    bin gerade wieder fleißig mit Java am üben, nur komm ich bei einer echt simplen Aufgabe in der mehrseitigen Auswahl nicht wirklich weiter.

    Der Benutzer soll einen Wert (P)arallel- oder (R)eihenschaltung auswählen.
    Die Eingabe wird mit der Scanner class eingelesen und im Objekt str1 als String gespeichert.
    Nun möchte ich so vorgehen, dass wenn str1 == P,p ist Anweisung 1 ausgeführt wird oder wenn str1 == P,p ist das Anweisung 2 ausgeführt wird.
    Allerdings funktioniert es so nicht...
    Wie bekomm ich das nun hin?

    Soweit bin ich bisher:
    Code:
    import java.util.*;
    public class WiderstandR 
    {
    
     public static void main(String argv[]) 
     {
     String str;
     
     int r1, r2, rg; // werden später berechnet
     Scanner input = new Scanner (System.in);
     
     System.out.println("Widerstands-Schaltung");
     System.out.println("(P)arallel- oder (R)eihenschaltung?");
     str = input.next();
     if(str == "P") // hier komme ich nicht weiter
    
    
    
    
    
     
     
    
    
     }
    
    }
    
    
    Hier die Aufgabenstellung:
    Wahlweise soll der Gesamtwiderstand (RG) zweier parallel oder in Reihe
    geschalteter Widerstände (R1, R2) nach Eingabe der beiden Widerstandswerte berechnet werden.




    Gruß
     
  2. 6. Oktober 2010
    AW: String auswahl

    Code:
    import java.util.*;
    public class WiderstandR 
    {
    
     public static void main(String [] args) // da war auch schon ein Fehler bei dir
     {
     String str;
     String p = "P"; // das sind Hilfsvariablen
     String r = "R";
     int r1, r2, rg; 
     Scanner input = new Scanner (System.in);
     
     System.out.println("Widerstands-Schaltung");
     System.out.println("(P)arallel- oder (R)eihenschaltung?");
     str = input.next();
     if(str.equals(p)) {
     System.out.println ("Sie haben Parallelschaltung gewählt!");
     } else if (str.equals(r)){
     System.out.println ("Sie haben Reihenschaltung gewählt!");
     } else {
     System.out.println ("Geben sie entweder P oder R ein");
     } 
     }
    
    }
    So führt er je nachdem ob du R oder P eingibst die outprintl's aus. Du kannst in die Anweisungen jede beliebige hineinschreiben.
     
  3. 6. Oktober 2010
    AW: String auswahl

    " " = strings und die vergleicht man mit if(a.equals(b)) { }

    jetzt fehlen nur noch code-tags @IbaneZ
     
  4. 6. Oktober 2010
    AW: String auswahl

    hey,

    danke erstmal.
    aber die eingabe funktioniert ja nur bei einer schreibweise.
    wie bekomme ich des hin das die Groß und kleinschreibung ignoriert wird, bzw. er sowohl P als auch p als wahr akzeptiert?

    Hier nochmal ein Struktugramm zu der Aufgabe, vielleicht gibt es auch einen einfacheren lösungsweg:
    JAVA 4 U
     
  5. 6. Oktober 2010
    AW: String auswahl

    wenn du Groß´und Klein Schreibung ignorieren willst, geb einfach beide als Möglichkeiten an:

    Code:
     if(str.equals("p") || str.equals("P")) {
     System.out.println ("Sie haben Parallelschaltung gewählt!");
     } else if (str.equals("r") || str.equals("R")){
     System.out.println ("Sie haben Reihenschaltung gewählt!");
     } else {
     System.out.println ("Geben sie entweder P oder R ein");
     } 
    
     
  6. 6. Oktober 2010
    AW: String auswahl

    Du könntest auch einfach vor dem Vergleich str.toUpperCase() machen.. Dann wird Groß- und Kleinschreibung ignoriert.

    Sieht dann also so aus:

    Code:
    import java.util.*;
    public class WiderstandR 
    {
    
     public static void main(String [] args) // da war auch schon ein Fehler bei dir
     {
     String str;
     String p = "P"; // das sind Hilfsvariablen
     String r = "R";
     int r1, r2, rg; 
     Scanner input = new Scanner (System.in);
     
     System.out.println("Widerstands-Schaltung");
     System.out.println("(P)arallel- oder (R)eihenschaltung?");
     str = input.next().toUpperCase();
     if(str.equals(p)) {
     System.out.println ("Sie haben Parallelschaltung gewählt!");
     } else if (str.equals(r)){
     System.out.println ("Sie haben Reihenschaltung gewählt!");
     } else {
     System.out.println ("Geben sie entweder P oder R ein");
     } 
     }
    
    }
     
  7. 6. Oktober 2010
    AW: String auswahl

    Eure beiden Lösungen funktionieren beide gut - sind jedoch etwas unnötig, da Java das schon von Haus aus mitbringt:
    Code:
    if(str.equalsIgnoreCase("p"))
    {
    // dein code hier
    }
    

    Edit:
    Also komplett:

    Code:
    import java.util.*;
    public class WiderstandR 
    {
    
     public static void main(String [] args) // da war auch schon ein Fehler bei dir
     {
     String str;
     String p = "P"; // das sind Hilfsvariablen
     String r = "R";
     int r1, r2, rg; 
     Scanner input = new Scanner (System.in);
     
     System.out.println("Widerstands-Schaltung");
     System.out.println("(P)arallel- oder (R)eihenschaltung?");
     str = input.next()
     if(str.equalsIgnoreCase(p)) {
     System.out.println ("Sie haben Parallelschaltung gewählt!");
     } else if (str.equalsIgnoreCase(r)){
     System.out.println ("Sie haben Reihenschaltung gewählt!");
     } else {
     System.out.println ("Geben sie entweder P oder R ein");
     } 
     }
    
    }
    
     
  8. 6. Oktober 2010
    AW: String auswahl

    ah, wieder was dazu gelernt. equalsIgnoreCase heißt also, dass er groß und klein schreibung ignoriert?
    Danke
     
  9. 6. Oktober 2010
    AW: String auswahl

    Jop. Zur "Erklärung": uppercase und lowercase. Bei equalsIgnoreCase is ihm das case egal .

    An sich einfach englisch - aber zum verdeutlichen
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.