我想从字符串代币中排除句号.
,如下例所示:
I go to school.
想要生成令牌:
[ I] [go] [to] [school]
我使用stringTokenizer作为:
List<String> listStr = new ArrayList<String>();
StringTokenizer strToken = new StringTokenizer(str);
int i =0;
while(strToken.hasMoreTokens()){
listStr.add(i, strToken.nextToken());
i=i+1;
}
但最后一个标记是school.
,我不想要。我该怎么办?
答案 0 :(得分:5)
这不是更简单吗?
List<String> list = Arrays.asList("I go to school.".split("[ .]"));
System.out.println(list)
打印
[I, go, to, school]
答案 1 :(得分:2)
StringTokenizer有一个constructor,它带有另一个参数:作为分隔符的字符。以下代码说明了这一点:
StringTokenizer tokenizer = new StringTokenizer("I go to school.", " \t\r\n.");
while(tokenizer.hasMoreElements()) {
System.out.println(tokenizer.nextElement());
}
这是输出,应该是你想要的:
I
go
to
school
答案 2 :(得分:1)
您可以在初始字符串上执行此操作:string.replace(".", "")
然后执行标记生成器。
答案 3 :(得分:1)
StringTokenizer可以占用很多分隔符,所以现在你应该按照以下方式构建strink tokenizer:
new StringTokenizer(yourString, " .");
就是这样。
希望它有所帮助。