我有一个if
语句,其中可以满足两个条件之一,但我不想使用嵌套的if
。
例如,我想要的是什么;
String s;
if(s == "foo" || "bar") {
// true
} else {
// false
}
但是,操作符||
无法应用于String
。
有什么方法吗?
答案 0 :(得分:3)
您可以使用正则表达式:
String s = "foo";
if (s.matches("foo|bar"))
// true
else
// false
答案 1 :(得分:2)
equals()
方法来比较Strings
。
if语句评估为布尔值(true
或false
)。
另外,请按照equals
比较的顺序颠倒以避免NPE。
String s;
if ("foo".equals(s) || "bar".equals(s)) {
} else {
}
答案 2 :(得分:1)
使用equals
来比较Java中的字符串:
String s;
if(s.equals("foo") || s.equals("bar")) {
// true
} else {
// false
}
答案 3 :(得分:1)
只是已经给出的替代方案:
if (Arrays.asList("foo", "bar").contains(s)) {
// true
} else {
// false
}
当然,您可以事先构建集合:
Set<String> wordsToMatch = new HashSet<>(Arrays.asList("foo", "bar"));
然后一遍又一遍地使用它:
if (wordsToMatch.contains(s)) {
// ...
答案 4 :(得分:0)
您正在比较Strings
错误。
显示如何使用Strings
类的equals()
方法比较String
。
String s;
if(s.equals("foo") || s.equals("bar")) {
// true
} else {
// false
}
答案 5 :(得分:-1)
if(s.equals("foo") || s.equals("bar")){
//Your Code
}