【问题标题】:User input string into string array [closed]用户输入字符串到字符串数组[关闭]
【发布时间】:2015-05-07 23:01:49
【问题描述】:

我正在尝试获取用户的输入,然后将输入存储到一个数组中。我将获得一个字符串输入,并且使用此代码,我认为它会起作用,但它不起作用。任何帮助将不胜感激!

import java.util.Scanner;
public class NameSorting {

    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        String[] array = new String[20];

        System.out.println("Please enter 20 names to sort");              
        Scanner s1 = new Scanner(System.in);
        for (int i = 0; i < 0;){

            array[i] = s1.nextLine();


        }


        //Just to test
        System.out.println(array[0]);

    }

}

【问题讨论】:

  • for (int i = 0; i &lt; 0;){ 看起来像“印刷错误”,因为它缺少 i++。如果不是这种情况,请确保使用实际代码更新您的帖子。
  • for (int i = 0; i

标签: java arrays string java.util.scanner


【解决方案1】:

既然你知道你想要一个包含 20 个字符串的数组:

String[] array = new String[20];

那么你的 for 循环应该使用数组的长度来确定循环应该何时停止。此外,您的循环缺少增量器。

试试下面的代码来帮助你:

public static void main(String[] args) throws Exception {
    Scanner s = new Scanner(System.in);
    String[] array = new String[20];

    System.out.println("Please enter 20 names to sort");

    for (int i = 0; i < array.length; i++) {
        array[i] = s.nextLine();
    }

    //Just to test
    System.out.println(array[0]);
}

【讨论】:

    【解决方案2】:

    看看你的 for 循环,它缺少增量属性。示例:for(int i = 0; i &lt; 0; i++) 如果你想调试每个循环,我建议你在 for-loop 中打印赋值

    for (int i = 0; i < 0;)
    {
        array[i] = s.nextLine();
        System.out.println(array[i]);  // Debug 
    }
    

    【讨论】:

      【解决方案3】:
      for (int i = 0; i < 0;){
              array[i] = s.nextLine();
          }
      

      对于第一次迭代,我将被初始化为“0”,因为根据您的条件,我应该小于“0”,它甚至不会进入循环。将循环更改为

      for(int i=0;i<20;i++){
      array[i]=s.nextLine();
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-30
        相关资源
        最近更新 更多