String.equals () con múltiples condiciones (y una acción en el resultado)

¿Es posible hacer algo como esto en Java para Android (este es un pseudo código)

IF (some_string.equals("john" OR "mary" OR "peter" OR "etc."){ THEN do something } 

?

Por el momento, esto se hace mediante múltiples condiciones String.equals() con || entre ellos.

Posibilidades:

  • Use String.equals() :

     if (some_string.equals("john") || some_string.equals("mary") || some_string.equals("peter")) { } 
  • Use una expresión regular:

     if (some_string.matches("john|mary|peter")) { } 
  • Almacene una lista de cadenas para comparar en una Colección y busque en la colección:

     Set names = new HashSet(); names.add("john"); names.add("mary"); names.add("peter"); if (names.contains(some_string)) { } 
 if (Arrays.asList("John", "Mary", "Peter").contains(name)) { } 
  • Esto no es tan rápido como usar un Set preparado, pero no funciona peor que con OR.
  • Esto no falla cuando el nombre es NULL (lo mismo con Set).
  • Me gusta porque se ve limpio

Mantenga los valores aceptables en un HashSet y verifique si su cadena existe usando el método contains :

 Set accept = new HashSet(Arrays.asList(new String[] {"john", "mary", "peter"})); if (accept.contains(some_string)) { //... } 

Su implementación actual es correcta. Lo sugerido no es posible, pero el pseudo código se implementará con múltiples llamadas equal() y || .

No, es como si la cadena es "john" OR "mary" OR "peter" OR "etc."

debes verificar usando ||

Me gusta. ,, if(str.equals("john") || str.equals("mary") || str.equals("peter"))

 Pattern p = Pattern.compile("tom"); //the regular-expression pattern Matcher m = p.matcher("(bob)(tom)(harry)"); //The data to find matches with while (m.find()) { //do something??? } 

Use expresiones regulares para encontrar un partido, tal vez?

O crea una matriz

  String[] a = new String[]{ "tom", "bob", "harry" }; if(a.contains(stringtomatch)){ //do something } 

Si desarrollas para Android KitKat o más reciente, también puedes usar una statement de cambio (ver: encoding de Android con el interruptor (Cadena) ). p.ej

 switch(yourString) { case "john": //do something for john case "mary": //do something for mary }