从用户获取输入并将其存储在Java中的String Array中

时间:2015-09-21 05:38:49

标签: java arrays

我编写一个程序,从用户那里得到输入"输入学生数:"然后将学生姓名添加到其中并在控制台中打印。我编写了一个运行良好的代码,但问题是循环已经漫游一次代码没有正常工作我还想知道如何使用命令行参数获取输入而不使用扫描程序并将其存储在字符串数组

当前输出就是这样 enter image description here

这是我的代码请帮助,我正在学习Java的短语

import java.util.Scanner;

public class StringScanner
{
  public static void main(String args[])
  {
    Scanner in = new Scanner(System.in);

    //get the input for number of students:
    System.out.println("Enter The number of students:");
    int totalstudents = in.nextInt();

    //store into String array

    String studentname[] = new String[totalstudents];

    for(int i = 0; i < studentname.length;i++)
    {
        System.out.println(i);
        System.out.println("Enter Student Names: ");
        studentname[i] = in.nextLine();
    }
    for(String names:studentname)
    {
        System.out.println(names);
    }
}

}

5 个答案:

答案 0 :(得分:2)

  

next():查找并返回此扫描程序中的下一个完整令牌。

     

nextLine():使此扫描程序超过当前行并返回   跳过的输入。

     

如果您打算,请尝试在scanner.nextLine();之后放置nextInt()   忽略其余部分。

public class StringScanner
{
  public static void main(String args[])
  {
    Scanner in = new Scanner(System.in);

    //get the input for number of students:
    System.out.println("Enter The number of students:");
    int totalstudents = in.nextInt();
     in.nextLine();// just to ignore the line
    //store into String array

    String studentname[] = new String[totalstudents];

    for(int i = 0; i < studentname.length;i++)
    {

        System.out.println("Enter Student Names: "+i);
        studentname[i] = in.nextLine();
    }
    for(String names:studentname)
    {
        System.out.println(names);
    }
 }
}

答案 1 :(得分:1)

尝试以下代码:

Scanner in = new Scanner(System.in);

//get the input for number of students:
System.out.print("Enter The number of students:");
int totalstudents = in.nextInt();

//store into String array

String studentname[] = new String[totalstudents];

for(int i = 0; i < studentname.length;i++)
{
    System.out.print("Enter Student " + i + " Name:");
    studentname[i] = in.nextLine();
}
for(int i = 0; i < studentname.length;i++)
{
    System.out.println(studentname[i]);
}

答案 2 :(得分:0)

您可以使用数组args[] 不需要通过那里的学生数量。

因此,在 java <className> 之后,您在命令提示符下传递的名称应存储在此数组中,您可以迭代它。

答案 3 :(得分:0)

使用ArrayList而不是String Array

声明头文件

      import java.util.ArrayList;

更改您的代码

      Scanner in = new Scanner(System.in);

    //get the input for number of students:
    System.out.println("Enter The number of students:");
    int totalstudents = in.nextInt();

    //store into arraylist
    ArrayList<String> al = new ArrayList<String>();

    for(int i = 0; i < totalstudents;i++)
    {
        System.out.println(i);
        System.out.println("Enter Student Names: ");
        al.add(in.next());
    }
    for(int i=0; i< al.size(); i++)
    {
        System.out.println(al.get(i));
    }

答案 4 :(得分:0)

在分配此in.nextLine();

后添加int totalstudents = in.nextInt();