String.equals() с несколькими условиями (и одним действием по результату)
Можно ли сделать что-то подобное в Java для Android (это псевдокод)
IF (some_string.equals("john" OR "mary" OR "peter" OR "etc."){
THEN do something
}
?
В настоящий момент это выполняется через несколько условий String.equals()
с ||
среди них.
Ответы
Ответ 1
Возможности:
-
Используйте 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))
{
}
Ответ 2
if (Arrays.asList("John", "Mary", "Peter").contains(name)) {
}
- Это не так быстро, как с помощью подготовленного набора, но он работает не хуже, чем с помощью OR.
- Это не сбой, когда имя NULL (то же, что и для Set).
- Мне нравится, потому что он выглядит чистым.
Ответ 3
Сохраняйте допустимые значения в HashSet
и проверьте, существует ли ваша строка с помощью метода contains:
Set<String> accept = new HashSet<String>(Arrays.asList(new String[] {"john", "mary", "peter"}));
if (accept.contains(some_string)) {
//...
}
Ответ 4
Ваша текущая реализация верна. Предлагаемый вариант невозможен, но псевдокод будет реализован с несколькими вызовами equal()
и ||
.
Ответ 5
Нет, его проверка аналогична строке "john" OR "mary" OR "peter" OR "etc."
вы должны проверить с помощью ||
Как и., if(str.equals("john") || str.equals("mary") || str.equals("peter"))
Ответ 6
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
}
Ответ 7
Вы также можете использовать оператор switch. например.
switch(yourString)
{
case "john":
//do something for john
case "mary":
//do something for mary
}