字符串 ||在索引中
String || in indexOf
我有一个问题:
int index = abc.indexOf("def"||"ghi");
我尝试使用上面的代码在字符串 "abc" 中搜索 "def" 或 "ghi"。但这不起作用。出现错误 "Operator || cannot be applied to 'java.lang.String', 'java.land.String'".
我该如何解决这个问题?
如编译器所述,||
条件运算符在那里使用不正确。
这就是你想要的:
int index = abc.contains("def") ? abc.indexOf("def"):
abc.contains("ghi")? abc.indexOf("ghi"): -1;
if(index != -1 ){
//do someting
}
int index = abc.indexOf("def");
if (index == -1) {
index = abc.indexOf("ghi");
} else {
// something else
}
您也可以使用 Matcher
class 实现它,如下所示:
Pattern pattern = Pattern.compile("(def)|(ghi)");
Matcher matcher = pattern.matcher(abc);
int index;
if (matcher.find()) {
index = matcher.start();
} else {
index = -1;
}
基本上你编译一个特定的正则表达式模式来匹配你想要匹配的序列。 matcher.find()
将查找第一次出现的模式,如果找到,您可以使用 matcher.start()
获取匹配模式的起始索引。
我有一个问题:
int index = abc.indexOf("def"||"ghi");
我尝试使用上面的代码在字符串 "abc" 中搜索 "def" 或 "ghi"。但这不起作用。出现错误 "Operator || cannot be applied to 'java.lang.String', 'java.land.String'".
我该如何解决这个问题?
如编译器所述,||
条件运算符在那里使用不正确。
这就是你想要的:
int index = abc.contains("def") ? abc.indexOf("def"):
abc.contains("ghi")? abc.indexOf("ghi"): -1;
if(index != -1 ){
//do someting
}
int index = abc.indexOf("def");
if (index == -1) {
index = abc.indexOf("ghi");
} else {
// something else
}
您也可以使用 Matcher
class 实现它,如下所示:
Pattern pattern = Pattern.compile("(def)|(ghi)");
Matcher matcher = pattern.matcher(abc);
int index;
if (matcher.find()) {
index = matcher.start();
} else {
index = -1;
}
基本上你编译一个特定的正则表达式模式来匹配你想要匹配的序列。 matcher.find()
将查找第一次出现的模式,如果找到,您可以使用 matcher.start()
获取匹配模式的起始索引。