0

我想.从字符串标记中排除句号,例如以下情况:

 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

4 回答 4

5

这不是更简单吗?

List<String> list = Arrays.asList("I go to school.".split("[ .]"));

System.out.println(list)印刷

[I, go, to, school]
于 2012-05-08T13:25:31.747 回答
2

StringTokenizer 有一个构造函数,它接受另一个参数:充当分隔符的字符。以下代码说明了这一点:

StringTokenizer tokenizer = new StringTokenizer("I go to school.", " \t\r\n.");
while(tokenizer.hasMoreElements()) {
    System.out.println(tokenizer.nextElement());
}

这是输出,应该是你想要的:

I
go
to
school
于 2012-05-08T13:28:01.683 回答
1

您可以在初始字符串上执行此操作:string.replace(".", "")然后执行标记器。

于 2012-05-08T13:25:54.427 回答
1

StringTokenizer 可以使用很多分隔符,因此现在在您的情况下,您应该按以下方式构建 srink 标记器:

new StringTokenizer(yourString, " ."); 

就是这样。

希望能帮助到你。

于 2012-05-08T13:29:35.970 回答