Datentypen If / OR

B

BuffaloBill

Gast
Ich habe eine Frage, ich möchte mehrere Dinge gleichzeitig über Prüfen. Nehmen wir an, ich habe einen String und ich möchte, das das selbe passiert wen man "Mann" oder "Frau" eingibt. Ich brauche also ein oder - ein Or eben, also ||?

Java:
 if (String.equals("Mann" || "Frau"){
{
Passt aber nicht. Eclipse sagt mir: "The operator || in undefined in Java.lang.String"
Muss doch ein oder für Strings geben? Natürlich könnte ich:
Java:
 if (String.equals("Mann"){
Etwas
}
else if (String.equals("Frau"){
nochmal dasselbe
}
aber das wäre unschön, weil ich den Code doppelt schreiben muss. Ich denke da gibt es eine einfache Lösung zu, ich suche nur nach den falschen Stichworten, oder so....
 

XHelp

Top Contributor
Warum muss es einen für Strings geben? Was soll denn da für eine Zeichenkette rauskommen?
Du kannst ja:
Java:
if (s.equals("Mann") || s.equals("Frau")) {
...
schreiben
 

xehpuk

Top Contributor
So ein direktes Schachteln ist mir in Java nicht bekannt, daher würde ich es so machen:
Java:
if (String.equals("Mann") || String.equals("Frau"))

Da ich zu lahm war, kann ich ja noch was dranhängen. Ab Java 7 gibts switch auch für Strings, sodass sich sowas machen ließe:
Java:
switch (string) {
    case "Mann":
    case "Frau":
        // Code
}

@Nachposter: Kommt drauf an. ;)
 
Zuletzt bearbeitet:
B

BuffaloBill

Gast
@Xhelp
Vieleicht geh ich die ganze Sache ja völlig falsch an, das wäre schon möglich, immerhin habe ich gerade erst angefangen. Also das ganze ist natürlich so, das hier eine Benutzereingabe abgefangen wird. Der Benutzer gibt etwas ein, das in einem String gespeichert wird. Je nach dem, was er eingibt, passiert etwas. Baer bei gewissen Eingaben passiert genau das selbe, daher brauch ich ein Oder:D
Danke euch allen, das hilft mir weiter.
 

xehpuk

Top Contributor
Wenn es nicht erlaubt sein soll, dass der String dort null ist, dann wird dies auch über eine Exception gemeldet. Ansonsten würde man einen unerlaubten Zustand durchgehen lassen.
In allen Operationen ohne Rückgabewert könnte man solche null-Werte ja immer durchlassen, indem man dann einfach am Anfang durch die Überprüfung auf null abbricht. So wird das aber auch nicht in der API gemacht.
 
B

bone2

Gast
der trick ist aber eben, das man bei
Code:
"Mann".equals(meinString)
nicht auf null überprüfen muss, da bei null einfach ein false zurück kommt und keine exception. wenn man null aber vorher wegen anderer sachen abfagen muss ist es egal.
 

muckelzwerg

Bekanntes Mitglied
Na es geht doch darum, dass der String durchaus null sein darf, aber eben trotzdem geprüft werden soll.
Wenn null ein akzeptabler Wert ist, dann will man doch keine Exception.
 

Oben