You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用StringTokenizer分割字符串仅能获取第一个token如何解决

问题原因

你使用的Scanner.next()方法默认以空白字符作为分隔符,每次调用仅返回第一个空白符之前的内容。你输入带空格的整句Hi welcome to java时,text = s.next()只拿到了第一个单词Hi,后续内容没有被存入变量,所以StringTokenizer分割时自然只能得到1个token。

修复方案

将s.next()替换为s.nextLine()即可,该方法会读取完整一行输入,直到遇到换行符停止,可以拿到你输入的整段带空格的字符串。

修复后代码

Scanner s = new Scanner(System.in);
System.out.println("ENTER STRING:");
text = s.nextLine();
StringTokenizer str = new StringTokenizer(text," ");
System.out.println(str.countTokens());
while(str.hasMoreTokens())
 { System.out.println(str.nextToken()); }

效果验证

修改后再次输入Hi welcome to java,会输出token总数为4,后续依次打印Hi、welcome、to、java四个单词,符合预期。

内容的提问来源于stack exchange,提问作者Ahleya Sheikh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 04:54:03