String.equals () с несколькими условиями (и одним действием по результату)

Можно ли сделать что-то подобное в Java для Android (это псевдокод)

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

?

На данный момент это выполняется через несколько String.equals() с || среди них.

Возможности:

  • Используйте String.equals() :

     if (some_string.equals("john") || some_string.equals("mary") || some_string.equals("peter")) { } 
  • Используйте регулярное выражение:

     if (some_string.matches("john|mary|peter")) { } 
  • Сохраните список строк, которые должны быть сопоставлены в коллекции, и выполните поиск в коллекции:

     Set<String> names = new HashSet<String>(); names.add("john"); names.add("mary"); names.add("peter"); if (names.contains(some_string)) { } 
 if (Arrays.asList("John", "Mary", "Peter").contains(name)) { } 
  • Это не так быстро, как использование подготовленного набора, но оно не хуже, чем с использованием OR.
  • Это не сбой, когда имя NULL (то же, что и Set).
  • Мне нравится, потому что он выглядит чистым

Сохраняйте допустимые значения в HashSet и проверяйте, существует ли ваша строка с помощью метода contains :

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

Ваша текущая реализация верна. Предлагаемый вариант невозможен, но псевдокод будет реализован с несколькими вызовами equal() и || ,

Нет, его проверка напоминает, что строка "john" OR "mary" OR "peter" OR "etc."

Вы должны проверить с помощью ||

Например: 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??? } 

Использовать регулярное выражение, чтобы найти совпадение?

Или создать массив

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

Вы также можете использовать оператор switch. например

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