从“StringTokenizer”获取原始字符串中的位置

2024-02-15

我需要获取字符串中以空格分隔的标记,但我还需要知道原始字符串中每个标记的字符位置starts。有什么办法可以做到这一点StringTokenizer。另外,据我了解,这是一个遗留类;有没有更好的替代方法StringTokenizer.


你应该总是使用String#split()分割你的字符串而不是StringTokenizer.

但是,由于您还想要字符串中标记的位置,所以最好使用Pattern http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html and Matcher http://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html班级。你必须Matcher#start() http://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html#start%28%29给出与模式匹配的字符串位置的方法。

这是一个例子:-

String str = "abc asf basdfasf asf";
Matcher matcher = Pattern.compile("\\S+").matcher(str);

while (matcher.find()) {
    System.out.println(matcher.start() + ":" + matcher.group());
}

图案\\S+匹配该字符串中的非空格字符。使用Matcher#find() http://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html#find%28%29方法返回所有匹配的子字符串。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从“StringTokenizer”获取原始字符串中的位置 的相关文章

随机推荐