【发布时间】:2017-01-19 16:21:01
【问题描述】:
我有一个字符串数组列表。让我们说
private final List<String> fruits = new ArrayList<String>();
现在我必须将传入的行与数组列表中的项目进行比较
while ((line = in.readLine()) != null) {
if (!(line.equals(fruits.get(0)) || line.contains(fruits.get(1)) ||
line.contains(fruits.get(2)) || line.contains(fruits.get(3)) ||
line.contains(fruits.get(4)) || line.contains(fruits.get(5)) ||
line.contains(fruits.get(6)) || line.equals(fruits.get(7) || line.equals(fruits.get(8)))) {
// "DO SOMETHING"
}
}
在某些情况下,我必须完全匹配字符串,而在某些情况下只使用 contains。但最后我的 if 子句中的条件不应超过 3 个。
【问题讨论】:
-
你考虑过使用循环吗?
-
构建正则表达式。
-
使用 if 语句编写方法,但不使用条件运算符。
-
可以使用
StringUtils.containsAny(CharSequence, CharSequence...)检查字符串是否是数组中任何字符串的子集。真正的问题是只检查一些是否相等。唯一的选择是遍历函数并知道哪些元素必须相等。 -
我很确定您在这里遇到了编译错误:
line.equals(fruits.get(7) || line.equals(fruits.get(8)))。
标签: java