【发布时间】:2021-06-03 17:05:58
【问题描述】:
这是我假设的初学者问题。所以请原谅我。
我的问题是我希望用户输入他们想要输入的名称的数量。然后,他们将输入名称,我将它们存储在一个数组中并打印出来。但似乎程序在输入姓名的数量后也将“”存储为空白。
例如,如果我输入 3,那么我只能再输入两个。假设输入 3 后,我输入“a”和“b”,程序将打印 ["", "a", "b"]。
如果我要求的是整数,它工作正常。 谢谢。
【问题讨论】:
标签: java
这是我假设的初学者问题。所以请原谅我。
我的问题是我希望用户输入他们想要输入的名称的数量。然后,他们将输入名称,我将它们存储在一个数组中并打印出来。但似乎程序在输入姓名的数量后也将“”存储为空白。
例如,如果我输入 3,那么我只能再输入两个。假设输入 3 后,我输入“a”和“b”,程序将打印 ["", "a", "b"]。
如果我要求的是整数,它工作正常。 谢谢。
【问题讨论】:
标签: java
在执行nextInt()后需要额外的nextLine(),否则开头会得到一个空字符。
这样做:
import java.util.Scanner;
import java.util.ArrayList;
public class Main
{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("How many names will you insert?");
int numNames = in.nextInt();
in.nextLine(); // NEEDS THIS
ArrayList<String> names = new ArrayList<String>();
for (int i = 0; i < numNames; i++ ) {
System.out.println("Enter name " + i+1 + ": ");
String name = in.nextLine();
names.add(name);
}
System.out.println("Added names:");
System.out.println(names);
}
}
【讨论】:
试试下面的代码,应该可以解决你的问题。
System.out.println("Enter number of users name you want to enter");
Scanner sc=new Scanner(System.in);
List<String> users=new ArrayList<String>();
int user_number=sc.nextInt();
while(user_number!=0)
{
System.out.println("Enter user name");
Scanner sc1=new Scanner(System.in);
String user=sc1.nextLine();
users.add(user);
user_number--;
}
System.out.println(users);
【讨论】: