Java if多个字符串条件判断的简单写法

Java 中,对于多个字符串的条件判断,可以使用 if-else 语句、 switch 语句或字典集合判断等方法判断。本文主要介绍Java中条件判断时,if条件中有多个字符串需要比较,条件比较多的简单写法。

一般较复杂的写法

if(pouch.getStatus().equals("Finalized") || pouch.getStatus().equals("Ready") 
  || pouch.getStatus().equals("Checkout") || pouch.getStatus().equals("Confirmed")
  || pouch.getStatus().equals("Book") || pouch.getStatus().equals("Started")
  || pouch.getStatus().equals("Inital") || pouch.getStatus().equals("Close")) {
        // 代码内容
}

1、使用matches实现

使用matches 方法来进行字符串条件判断,可以通过正则表达式匹配字符串。

if(pouch.getStatus().matches("Finalized|Ready|Checkout|Confirmed|Book|Started|Inital|Close")){
//your implementation goes here
}

2、使用字典集合判断

如果条件较多,可以使用 Set 来存储多个字符串,并通过 contains 方法检查条件是否匹配。

1)在集合中添加多个条件,从中实现 Collection<E>

Set<String> dict = new HashSet<String>();
dict.add("Finalized");
dict.add("Ready");
dict.add("Checkout");
dict.add("Confirmed");
dict.add("Book");
dict.add("Started");
dict.add("Inital");
dict.add("Close");

2)contains检查输入值是否存在于集合中

if (dict.contains(pouch.getStatus()))
{
// do your logic
}

3、使用Stream实现判断

如需要处理的条件比较复杂,可以使用 Java 8 的 Streams API 来实现条件判断。

String status = pouch.getStatus();
if (Stream.of(
"Finalized",
"Ready",
"Checkout",
"Confirmed",
"Book",
"Started",
"Inital",
"Close")
.anyMatch(status::equals)) {
// Body
}

4、使用Arrays.asList()通过数组判断

使用 Arrays.asList() 方法通过数组判断多个字符串条件,可以将条件存储在一个列表中,并使用该列表来进行匹配。

 public String[] statusArray = new String[]{  "Finalized", "Ready","Checkout","Confirmed",  "Book",  "Started", "Inital", "Close"};
if( Arrays.asList(statusArray).contains(pouch.getStatus())){
//do something
}

// Java 9 way of initializing List with one line        
List<String> statuses = List.of("Finalized", "Ready", "Checkout", "Confirmed",
    "Book", "Started", "Inital", "Close");
if (statuses.contains(pouch.getStatus())) {
  // 代码内容
}

5、使用switch case判断

switch 语句是处理多个字符串条件的更简洁的方式。Java 7 及更高版本支持对字符串进行 switch 判断。

switch (pouch.getStatus()) {
case "Finalized":
case "Ready":
case "Checkout":
case "Confirmed":
case "Book":
case "Started":
case "Inital":
case "Close":
// your code break;
}

推荐阅读
cjavapy编程之路首页