在Stringtokenizer中使用句点作为字符串分隔符

时间:2012-05-08 13:23:25

标签: java stringtokenizer

我想从字符串代币中排除句号.,如下例所示:

 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.,我不想要。我该怎么办?

4 个答案:

答案 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, " ."); 

就是这样。

希望它有所帮助。