-2
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);
    }

}

输出:

你好,我是世界之王3

到这里为止没问题。

如果我想在这些标记中包含一些空格,我该怎么做?

改变:

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

对此:

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

给出输出:

你好,世界之王 8

然后它会覆盖其他令牌。我将如何获得空格和所需的令牌?

4

3 回答 3

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

希望这能消除混乱。

于 2013-10-13T15:19:16.323 回答
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
于 2013-10-13T15:01:30.433 回答
1

你在做什么是好的。

您正在使用拆分字符串“hello=i am, the king of the world”

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

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

  1. 你好
  2. 一世
  3. 世界

...这正是您想要做的。

于 2013-10-13T15:00:55.807 回答