这个问题在这里已经有答案了:
将一个字符串与一个表达式中的多个值进行比较(18个答案)
5年前关门了。
我经常发现自己在写这样的话。。。
if (name.equals("fred") || name.equals("bob") || name.equals("jack")){
}
或者用原语。。。
if (numb==4 || numb==45 || numb=91){
}
有没有更简洁的方法?
编辑:我的问题确实是重复的。对于任何阅读本文的人,我建议大家也看看其他的线程——它们有一些好的东西。
3条答案
按热度按时间uhry853o1#
真正的答案是,你不应该总是追求更“简洁”。选择最可读的,除非你遇到了效率问题。
话虽如此,我还是要用另一种方法:
9o685dep2#
你可以。。。
使用switch语句。。。
和
你可以。。。
使用
Collection
某种类型的。。。如果你有动态值的话。。。
你也可以用一些像。。。
如果你需要使用
&&
而不是||
...你也可以用长手代替
String
使用预定义数组或List
,它允许您编写单个方法。。。这样你就可以写一些像。。。
作为一个想法。。。
在某些时候,需要考虑上下文,例如,上面的示例允许您提供一系列灵活的条件,但您可能不想这样做,因此必须编写
if
像你一样的陈述zaq34kh63#
你可以用
switch
以及case
声明:例如,而不是:
你可以做:
如果您非常注重可读性(因为这正是这个问题所关心的),您还可以在布尔检查之间创建换行符:
如果你有很长很复杂的方法,这是一个很好的组织代码的方法。
更好的是,对字符串对象使用regex:if(name.matches(“bob | food | fred”){//do something}