我试图在我的字符串中获取多个子串的位置。如果这可能很重要,我会使用标记生成器来查看字符串中的单词。
例如,如果我的输入是:
"你好< 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,正如我所希望的那样,但我希望得到每个子串的位置。
答案 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:是