Strings vergleichen mit equals, geht das kürzer?

  • Themenstarter Themenstarter Gelöschtes Mitglied 25984
  • Beginndatum Beginndatum
G

Gelöschtes Mitglied 25984

Gast
Hallo!
Ich mache gerade einen Javakurs in der Uni und dachte mir: wieso soll ich mich eigentlich nicht auf einem Javaforum anmelden, ich werde sicher noch viele Fragen haben.

Der Threadtitel sagt es ja schon. Ich habe hier eine solche Abfrage
Java:
if (!argument.equals("+") && !argument.equals("-") && !argument.equals("/") && !argument.equals("*"))
Könnte man die irgendwie kürzer schreiben? Eigentlich müsste es ja sowas in der Art von
Java:
if (!argument.equals("+" || "-" || "/" || "*"))
geben.

Das ist zwar eine ziemlich dumme, unbedeutende Frage, aber ich würde das trotzdem gerne wissen.
 
Wenn es noch mehr Strings werden, bietet sich auch ein Set an.
Java:
// irgendwo z.B. als konstante globale Variable deklarieren
public static final Set<String> OPERATORS= new HashSet<String>();

// an einer passenden Stelle einmal (!) auffüllen
OPERATORS.add( "+" );
OPERATORS.add( "-" );

// und nun das "equals"
String test = ???
boolean equals = OPERATORS.contains( test );
 
wenn man so was öfters braucht aber mit anderen Vergleichswerten, könnte man sich evtl. auch eine Hilfsmethode bauen.

Java:
public class Test {
	
	public static void main(String[] args) {
		boolean b1 = Test.check("d", "+", "-", "/", "+" );
		System.out.println(b1);
		
		boolean b2 = Test.check("-", "+", "-", "/", "+" );
		System.out.println(b2);
	}
	
	final static public boolean check(final String value, final String... sdaf){
		for(String s : sdaf){
			if (value.equals(s)){
				return true;
			}
		}
		return false;
	}
	
}
 
Zuletzt bearbeitet:

Zurück
Oben