我有一个关于indexOf方法的问题。我想在一个字符串中找到多个"X“的案例。
假设我的字符串是"x is x",我想在它的所有索引位置中找到x。但是如何在多个情况下做到这一点呢?使用indexOf可以做到这一点吗?
我做了int temp = str.indexOf(' x ');它找到了第一个x。我试图做一个for循环,在那里我被初始化为字符串的长度,但这不起作用,因为我一遍又一遍地寻找第一个x。
for (int y = temp1; y >= 0;y-- )
{
int temp = str.indexOf('x');
System.out.println(temp);
}
但这是行不通的。我应该使用正则表达式吗?因为我真的不知道如何使用regex方法。
如有任何帮助,将不胜感激,谢谢!
发布于 2011-02-14 09:11:32
indexOf
方法还有第二个变体,它接受起始索引作为参数。
i = str.indexOf('x');
while(i >= 0) {
System.out.println(i);
i = str.indexOf('x', i+1);
}
发布于 2011-02-14 09:08:24
还有另一个版本的indexOf
方法,以fromIndex
作为参数。
因此,您可以在循环中调用它,每次都将prevPosition + 1
作为第二个参数传递。
文档:
http://download.oracle.com/javase/6/docs/api/java/lang/String.html#indexOf(int, int)
发布于 2011-02-14 09:09:31
您可以使用indexOf指定起始索引。因此,在您的循环中存储'x‘的最后一个位置,然后使用该索引+ 1再次搜索。
https://stackoverflow.com/questions/4988050
复制相似问题