字符串||在indexOf中

时间:2017-05-09 16:15:40

标签: java android string indexof

我有一个问题:

int index = abc.indexOf("def"||"ghi");

我尝试上面的代码在字符串“abc”中搜索“def”或“ghi”。但这不起作用。有一个错误“运算符||不能应用于'java.lang.String','java.land.String'”。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:4)

正如编译器所述,DECLARE @X TABLE (val VARCHAR(8)); INSERT INTO @X (val) VALUES (NULL), ('abc'),('4'),('%&Crazy') Select val AS ASIS , ISNULL(val, 0) AS firstCastWillWorkForNullsNotMuchElse , CASE WHEN ISNUMERIC(ISNULL(val, 0)) <> 0 THEN ISNULL(val, 0) ELSE 0 END AS secondCastToCheckNumeric , CAST(CASE WHEN ISNUMERIC(ISNULL(val, 0)) <> 0 THEN ISNULL(val, 0) ELSE 0 END AS MONEY) AS thirdCastDoesItAll From @X 条件运算符在那里使用不正确。

这就是你想要的:

||

答案 1 :(得分:0)

Log4j2

答案 2 :(得分:0)

您也可以使用Matcher类来实现它,如下所示:

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()来获取匹配模式的起始索引。