如何获得子串的位置

时间:2017-10-15 00:08:53

标签: java position substring

我试图在我的字符串中获取多个子串的位置。如果这可能很重要,我会使用标记生成器来查看字符串中的单词。

例如,如果我的输入是:

  

"你好< shaz = 2"

我想得到每个元素的位置

Hello : Pos 1
< : Pos 7
shaz : Pos 9
= : Pos 14
2 : Pos 16

我尝试过使用以下内容作为示例:

String string = "Hello, my name is";
System.out.println(string.indexOf("my") + 1);

这印刷了8,正如我所希望的那样,但我希望得到每个子串的位置。

2 个答案:

答案 0 :(得分:1)

试试这个编辑过的版本:

B

打印:

您好:Pos 1

&LT; :Pos 7

shaz:Pos 9

=:Pos 14

2:Pos 16

您好:Pos 18

&LT; :Pos 24

shaz:Pos 26

=:Pos 31

2:Pos 33

您好:Pos 35

答案 1 :(得分:0)

您可以使用Matcher

String string = "Hello, my name is";
Pattern pattern = Pattern.compile("\\w+"); // search for word, the regex might need adjustment
Matcher matcher = pattern.matcher(string);
// Will print the word and it's position
while (matcher.find()) {
    System.out.format("%d:%s%n", matcher.start() + 1, matcher.group());
}

输出:

  

1:你好
  8:我
  11:名
  16:是