如何在Java中创建,填充和打印字符串数组

时间:2013-10-18 18:21:37

标签: java arrays

我在用户输入数据中填充String数组时遇到问题。以下是我的问题的一个简单示例:

import java.util.Scanner;

public class TestArray {
    public static void main(String[] args){

        Scanner input = new Scanner(System.in);

        System.out.println("Enter a number between 1 and 5");
        int number = input.nextInt();    

        System.out.println("Now enter " + number +  " names");    
        String names = input.next();

        String[] nameList = new String[number];

        for(int i = 0; i < number; i++){
            nameList[i] = input.next();
            System.out.println(nameList[i]);
        }
    }
}     

我不知道为什么这只是输出输入的姓氏。我最终要找的是打印出每个名字。我也尝试使用input.nextLine()无效。

任何提示或指示都将不胜感激。

4 个答案:

答案 0 :(得分:3)

输入名称后,只需要一个单独的循环即可将它们全部打印出来:

import java.util.Scanner;

public class TestArray {
    public static void main(String[] args){

        Scanner input = new Scanner(System.in);

        System.out.println("Enter a number between 1 and 5");
        int number = input.nextInt();    

        System.out.println("Now enter " + number +  " names");    
        //NOTE:  You may want to remove this line since it will mess up your data.
        //String names = input.next();

        String[] nameList = new String[number];

        for(int i = 0; i < number; i++){
            nameList[i] = input.next();
        }

        //print separate here.
        System.out.println("Here are the names you entered:  ");
        for(int i = 0; i<number; i++){
            System.out.println(nameList[i]);
        }
    }
} 

答案 1 :(得分:0)

的目的是什么?
String names = input.next();

您根本不使用names并且因为它而在数字后面捕获下一个输入。

如果删除它就应该有效......

答案 2 :(得分:0)

您的第一次input.next()电话(在提示之后,“现在输入X名称”)正在扭曲您的数据。只需删除它。

public class TestArray {
    public static void main(String[] args){

       Scanner input = new Scanner(System.in);

       System.out.println("Enter a number between 1 and 5");
       int number = input.nextInt();    

       System.out.println("Now enter " + number +  " names");

       String[] nameList = new String[number];

        for(int i = 0; i < number; i++){
            nameList[i] = input.next();
            System.out.println(nameList[i]);
        }
    }
}

答案 3 :(得分:0)

该行

 String names = input.next();

导致你的问题。如果你把它拿出来,程序就会按照你的描述执行。或者,您可以在一个循环中填充数组,然后在打印它们之后循环遍历列表。这取决于你究竟想要做什么。

 import java.util.Scanner;

 public class test{
  public static void main(String[] args){

      Scanner input = new Scanner(System.in);

      System.out.println("Enter a number between 1 and 5");
      int number = input.nextInt();    

      System.out.println("Now enter " + number +  " names");      
      //String names = input.next();

      String[] nameList = new String[number];

       for(int i = 0; i < number; i++){
                    nameList[i] = input.next();
          System.out.println(nameList[i]);
    }    
  }
}