【问题标题】:How do I store tokens into their own element in a given array?如何将令牌存储到给定数组中自己的元素中?
【发布时间】:2021-10-22 06:58:14
【问题描述】:

我正在尝试编写一个方法,该方法将使用 StringTokenizer 将用户输入的字符串用一个空格分隔,并将每个单词存储到他们自己的数组中。给定的代码是我在卡住 3 小时之前得到的。我试图通过让 for 循环打印出数组的元素来测试代码,但它所做的只是为每个元素返回 null。我究竟做错了什么?我最好的猜测是它没有将数组索引分配给令牌,但我不确定..任何帮助都会很棒。谢谢!

另外,我知道 StringTokenizer 是旧的东西,但我的教授严格表示他希望我们使用它。

谢谢

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++) {
         System.out.println(tokenArray[i]);
    }
}

【问题讨论】:

    标签: java arrays null stringtokenizer


    【解决方案1】:

    字符串数组tokenArray被初始化为记号大小,但数组中的元素没有赋值

    需要

    tokenArray[i] = st.nextToken();
    

    修改代码

    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++) {
        tokenArray[i] = st.nextToken();
        System.out.println(tokenArray[i]);
    }
    

    【讨论】:

      【解决方案2】:
          Scanner scanner = new Scanner(System.in);
          System.out.println("Please enter your command: ");
          String input = scanner.nextLine();
          StringTokenizer st = new StringTokenizer(input, " ");
          while(st.hasMoreTokens()) {
              System.out.println(st.nextToken());
          }
      

      【讨论】:

      • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
      猜你喜欢
      • 1970-01-01
      • 2017-10-25
      • 1970-01-01
      • 2012-10-12
      • 2012-03-10
      • 2021-04-15
      • 2020-03-15
      • 1970-01-01
      相关资源
      最近更新 更多