首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用于字符串中多个匹配的Java indexOf方法

用于字符串中多个匹配的Java indexOf方法
EN

Stack Overflow用户
提问于 2011-02-14 09:05:34
回答 5查看 56.1K关注 0票数 26

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

假设我的字符串是"x is x",我想在它的所有索引位置中找到x。但是如何在多个情况下做到这一点呢?使用indexOf可以做到这一点吗?

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

代码语言:javascript
复制
for (int y = temp1; y >= 0;y-- ) 
{
    int temp = str.indexOf('x');
    System.out.println(temp);
}

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

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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-02-14 09:11:32

indexOf方法还有第二个变体,它接受起始索引作为参数。

代码语言:javascript
复制
i = str.indexOf('x');
while(i >= 0) {
     System.out.println(i);
     i = str.indexOf('x', i+1);
}
票数 50
EN

Stack Overflow用户

发布于 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)

票数 11
EN

Stack Overflow用户

发布于 2011-02-14 09:09:31

您可以使用indexOf指定起始索引。因此,在您的循环中存储'x‘的最后一个位置,然后使用该索引+ 1再次搜索。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4988050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档