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

使用StringTokenizer拆分字符串存入数组后打印全为null如何解决?

问题原因
  • 你的判断是正确的,问题核心是你只完成了数组的初始化操作,没有将StringTokenizer拆分得到的单词赋值到数组的对应索引位置
  • Java里引用类型的数组在初始化后,没有手动赋值的元素默认值就是null,你直接遍历打印未赋值的数组,得到的结果自然全是null
修正代码

你只需要在循环中先调用StringTokenizer的nextToken()方法,将拿到的单词赋值给数组对应位置,再打印即可:

private void receiveInput() {
    Scanner scanner = new Scanner(System.in);
    System.out.println("Please enter your command: ");
    String input = scanner.nextLine();
    StringTokenizer st = new StringTokenizer(input, " ");
    int number = st.countTokens();
    String tokenArray[] = new String[number];
    for (int i = 0; i < tokenArray.length; i++) {
         // 新增赋值逻辑:取出当前拆分的token,存入数组对应索引
         tokenArray[i] = st.nextToken();
         System.out.println(tokenArray[i]);
    }
}
补充说明

你提前通过st.countTokens()获取到了拆分后的总token数,数组长度和token数量完全一致,不会出现读取超出范围的NoSuchElementException异常,符合你的使用需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:54:06