【问题标题】:Why a comma is getting printed in the beginning when we print a arraylist?为什么打印数组列表时会在开头打印逗号?
【发布时间】:2019-08-03 12:04:09
【问题描述】:

我想在java中打印一个数组List,但是为什么开头会打印一个逗号?

public static void main(String[] args) {
    Scanner sc= new Scanner(System.in);
    int n=sc.nextInt();
    String name;
    List<String> nameList= new ArrayList<>();
    for(int i=0;i<=n;i++) {
        name=sc.nextLine();
        nameList.add(name);
    }
    System.out.println(nameList);
}

And this is the result i got

2
ABC
XYZ
[, ABC, XYZ]

如您所见,为什么在 ABC 之前打印逗号?

【问题讨论】:

  • 您应该在添加到列表之前检查它。因为在插入数字后你按 Enter.name = sc.nextLine(); if (!name.equals("")) nameList.add(name);

标签: java arraylist printing


【解决方案1】:

找到灵魂...

public static void main(String[] args) {
    Scanner sc= new Scanner(System.in);
    int n=sc.nextInt();
    sc.nextLine();
    String name;
   List<String> nameList= new ArrayList<>();
    for(int i=0;i<n;i++)
    {
        name=sc.nextLine();
        nameList.add(name);
    }
    System.out.println(nameList);
}

您需要做的就是添加一个sc.nextLine(); 以便在 int 之后进行清理。因为没有它,int 会进入 ArrayList,这就是为什么开头有一个 , 的原因。我希望你能理解我。 祝你有美好的一天!

【讨论】:

  • 感谢 MC Star...现在它可以按预期工作,但是您能否深入解释一下,为什么 int 会进入 arrayList?这是一个错误吗??我不明白。谢谢!!!
【解决方案2】:

nextInteger 不使用换行符。因此,在循环之前需要一个 nextLine,以便您在整个循环的每次迭代中读取新的整行

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    相关资源
    最近更新 更多