Java 询问用户要输入多少个名称并将这些名称存储在数组中

Java 询问用户要输入多少个名称并将这些名称存储在数组中,java,Java,我想这是一个初学者的问题。所以请原谅我 我的问题是,我希望用户输入他们想要输入的名称的数量。然后,他们将输入名称,我将它们存储在一个数组中并打印出来。但似乎程序在输入名称数后也会将“”存储为空 例如,如果我输入3,那么我只能再输入两个。假设输入3后,我输入“a”和“b”,程序将打印[“”、“a”、“b”] 如果我改为求整数,效果很好。 谢谢。在执行nextLine()之后,您需要一个额外的nextLine(),否则,它将在开始处获得一个空字符 这样做: import java.util.Scan

我想这是一个初学者的问题。所以请原谅我

我的问题是,我希望用户输入他们想要输入的名称的数量。然后,他们将输入名称,我将它们存储在一个数组中并打印出来。但似乎程序在输入名称数后也会将“”存储为空

例如,如果我输入3,那么我只能再输入两个。假设输入3后,我输入“a”和“b”,程序将打印[“”、“a”、“b”]

如果我改为求整数,效果很好。 谢谢。

在执行nextLine()之后,您需要一个额外的nextLine(),否则,它将在开始处获得一个空字符

这样做:

import java.util.Scanner;
导入java.util.ArrayList;
公共班机
{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
System.out.println(“您将插入多少个名称?”);
int numNames=in.nextInt();
in.nextLine();//需要这个
ArrayList name=新的ArrayList();
对于(int i=0;i
试试下面的代码,它会解决您的问题

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);  
System.out.println(“输入要输入的用户名数量”);
扫描仪sc=新的扫描仪(System.in);
列表用户=新建ArrayList();
int user_number=sc.nextInt();
while(用户号!=0)
{
System.out.println(“输入用户名”);
扫描仪sc1=新扫描仪(System.in);
字符串user=sc1.nextLine();
用户。添加(用户);
用户号--;
}
System.out.println(用户);

非常感谢in.nextLine完成了这项工作。你能解释为什么它会存储空白字符吗?我只是好奇。除非你知道。没有压力,不客气。因此,在开始之前需要调用nextLine的原因是nextInt在第一个非数字字符处停止,这是换行符,因此需要跳过它。这在许多编程语言中都会发生,这个链接解释了为什么会在c++中发生:谢谢。似乎我不能接受答案,我不知道为什么。一旦选中accept,然后刷新页面,它就会返回未选中状态。