StringTokenizer包括空格

时间:2013-10-13 14:47:08

标签: java

import java.util.*;

public class test5 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        String s = "hello=i am, the king of the world";
        int sum = 0;

        StringTokenizer t = new StringTokenizer(s, "=,;");
        while (t.hasMoreTokens()) {
            sum++;
            System.out.print(t.nextToken());
        }

        System.out.println("\n" + sum);
    }

}

输出:

  

helloi是世界之王3

直到这里才有问题。

如果我想在这些代币中加入一些空格,我该怎么做?

更改:

StringTokenizer t = new StringTokenizer(s,"=,;");

到此:

StringTokenizer t=new StringTokenizer(s," =,;");

给出输出:

  

helloiamthekingoftheworld 8

然后覆盖其他令牌。我如何同时获得空格和所需的标记?

3 个答案:

答案 0 :(得分:1)

你在做什么是好的。

你正在使用

分割字符串“hello = i am,the world of the world”

StringTokenizer t=new StringTokenizer(s," =,;");

如果应用,字符串将分为八部分:

  1. 你好
  2. I
  3. 上午
  4. 世界
  5. ......这正是你想要做的。

答案 1 :(得分:1)

一切正常,正如预期的那样。请使用println()代替print()来正确查看结果。

代码:

StringTokenizer t=new StringTokenizer(s,"=,;");

输出:

hello
i am
 the king of the world
Sum is 3

代码:

StringTokenizer t=new StringTokenizer(s," =,;");

输出:

hello
i
am
the
king
of
the
world
Sum is 8

答案 2 :(得分:1)

  然后它显然超过其他代币......如何获得两者   空格和所需的标记??

我认为通过这种说法你的意思是不考虑其他分隔符。但它真的如此吗?不会考虑其他代币。

确认让我们查看所有打印的令牌。为了更清晰,我们可以将System.out.print()更改为System.out.println(),以便将所有令牌打印到单独的行中。输出是。我已将解释包含在每个令牌前面的括号中。 字符串是

  

“你好=我是,世界之王”

hello 
i    (split due the to delimiter =)
am    (split due to delimiter space)
the    (split due to delimiter , and space)
king   (split due to delimiter space)
of     (split due to delimiter space)
the     (split due to delimiter space)
world    (split due to delimiter space)

8

希望这可以解决这个困惑。