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
然后覆盖其他令牌。我如何同时获得空格和所需的标记?
答案 0 :(得分:1)
你在做什么是好的。
你正在使用
分割字符串“hello = i am,the world of the world” StringTokenizer t=new StringTokenizer(s," =,;");
如果应用,字符串将分为八部分:
......这正是你想要做的。
答案 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
希望这可以解决这个困惑。