具有多个条件的String.equals()(以及对结果的一个操作)

san*_*one 45 java android

是否有可能在Java for Android中做这样的事情(这是一个伪代码)

IF (some_string.equals("john" OR "mary" OR "peter" OR "etc."){
   THEN do something
}
Run Code Online (Sandbox Code Playgroud)

目前,这是通过其中的多个String.equals()条件完成的||.

hmj*_*mjd 126

可能性:

  • Java 9+ `Set.of("john", "mary").contains(some_string)` (4认同)
  • 来自 Java8 的 Set.of * :-) (2认同)

Hai*_*han 44

if (Arrays.asList("John", "Mary", "Peter").contains(name)) {
}
Run Code Online (Sandbox Code Playgroud)
  • 这不如使用准备好的Set快,但它的表现并不比使用OR差.
  • 当name为NULL时(与Set相同),这不会崩溃.
  • 我喜欢它,因为它看起来很干净


kro*_*ock 7

将可接受的值保存在a中,HashSet并使用contains方法检查字符串是否存在:

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