【发布时间】:2021-03-19 06:50:47
【问题描述】:
我有一个包含逗号分隔值的最终字符串 acceptedList。
final String acceptedList = "ABC, HIJ/LMN, PQR1, XYZ";
另一个动态字符串 receivedList 也是一个 csv,作为我函数的输入。
String receivedList = "ABC, PQR1";
如果 receivedList 中的值与acceptedList 中的值匹配(以任何顺序),它应该返回成功消息。
成功场景示例:
receivedList = "ABC";
receivedList = "HIJ/LMN, ABC";
receivedList = "XYZ, PQR1, ABC";
失败场景示例:
receivedList = "ABC, UNKNOWN";
receivedList = "UNKNOWN";
receivedList = "HIJ-LMN";
我已经实现了以下代码,它工作正常。有没有更好的方法来实现这一点?
public class Driver {
final static String acceptedList = "ABC, HIJ/LMN, PQR1, XYZ";
public static void main(String[] args) {
String receivedList = "ABC, PQR1";
System.out.println(checkValues(receivedList));
}
private static String checkValues(String receivedList) {
List<String> acceptedListArray = Arrays.asList(acceptedList.split(", "));
String[] receivedArray = receivedList.split(", ");
for (String string : receivedArray) {
if (!acceptedListArray.contains(string)) {
return "Error!";
}
}
return "Success!";
}
}
输出
Success!
【问题讨论】:
-
如果可以使用list提供的库函数,则不需要循环。