【问题标题】:Split the words using string tokenizer if it is followed by two or more space/whitespace in java? [duplicate]如果在java中后跟两个或更多空格/空格,则使用字符串标记器拆分单词? [复制]
【发布时间】:2013-03-24 18:11:41
【问题描述】:

在我的字符串中,我想根据两个或多个空格来标记字符串。

例如

String str = "I am  Chaitanya Gadam.      Split   this string."
StringTokenizer tokenizer = new StringTokenizer(str);
while (tokenizer.hasMoreTokens()) 
{
    String token = tokenizer.nextToken();
    System.out.println("==Token== : "+token);
}

我要出来了:

==Token== : [I]
==Token== : [am]
==Token== : [Chaitanya]
==Token== : [Gadam.]
==Token== : [split]
==Token== : [this]
==Token== : [string.]

但所需的输出应该是:

==Token== : [I am]
==Token== : [Chaitanya Gadam.]
==Token== : [split]
==Token== : [this string.]

【问题讨论】:

    标签: java split tokenize stringtokenizer


    【解决方案1】:

    您可以在String.split(regex) 方法中使用这个regex

    String[] tokens = str.split("  +");
    

    更新:-

    如果您需要删除前导和尾随空格,请trim() 然后拆分您的字符串。

    str = str.trim();
    

    【讨论】:

    • 另一个问题是,如果我的字符串在开头有额外的空格,那么我得到的输出是,final String src = "I am Chaitanya Gadam. Split this srting."; [,我是,Chaitanya Gadam。,斯普利特,这首歌。]
    • 但要求的输出是 [I am, Chaitanya Gadam., Split, this srting.] 所以我正在尝试使用字符串标记器。
    • 检查我的更新。使用trim()
    【解决方案2】:

    这应该可行-

        String[] array = str.split("\\s{2,}");
        for (String word : array) {
            System.out.println(word);
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-22
      • 1970-01-01
      • 2020-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多