Java 索引字符串中多个匹配项的方法

2022-09-01 13:46:37

我有一个关于 indexOf 方法的问题。我想在字符串中找到“X”的多个案例。

假设我的字符串是“x是x是x是x”,我想在其所有索引位置找到x。但是,对于多个案例,您如何做到这一点呢?这甚至可以通过 indexOf 实现吗?

我做了int temp = str.indexOf('x');它找到第一个 x。我试图做一个for循环,其中i被初始化为字符串的长度,这不起作用,因为我一遍又一遍地找到第一个x。

for (int y = temp1; y >= 0;y-- ) 
{
    int temp = str.indexOf('x');
    System.out.println(temp);
}

但这行不通。我应该使用正则表达式吗?因为我真的不知道如何使用正则表达式方法。

任何帮助将不胜感激,谢谢!


答案 1

该方法还有第二种变体,它将起始索引作为参数。indexOf

i = str.indexOf('x');
while(i >= 0) {
     System.out.println(i);
     i = str.indexOf('x', i+1);
}

答案 2

还有另一个版本的方法,作为参数。
因此,您可以在循环中调用它,每次都作为第二个参数传递。indexOffromIndexprevPosition + 1

文档:
http://download.oracle.com/javase/6/docs/api/java/lang/String.html#indexOf(整型,整型)