对长 if 语句使用条件运算符
我正在看看是否有更好/更好的方法来编写使用多个||运算符的长 if 语句。
在线查看后,我看到很多使用条件二项式运算符的示例。有没有办法在检查字符串是否等于单词时使用它?
在线示例遵循以下结构:
int price = condition?80:100;
这是函数:
public boolean validateLetters(String word) {
if (word.equals("apple") || word.equals("excel") || word.equals("intern")
|| word.equals("orange") || word.equals("car")) {
return true;
}
return false;
}
该函数检查以查看参数词是否与以下内容之一匹配。
有没有更好或更有效的方式来编写它?
回答
此特定检查的最简单方法是将所有相关单词放入 aSet并使用contains:
private static final Set<String> VALID_WORDS = Set.of("apple", "excel", "intern", "orange", "car");
public boolean validateLetters(String word) {
return VALID_WORDS.contains(word);
}
一般来说,输入以某种方式组合的非常相似的检查列表表明您应该以某种方式重构代码。
- @m.antkowicz:是的,但我也不再提示答案是否需要 Java 1.2。Java 9 不是一个新版本,是时候标准化*至少*那个版本了。
- @william_:这是一个小数据结构的一次性分配。您在内存中付出的代价可能远低于开发过程中更复杂代码的额外开销。