我想创建一个Arraylist,在用户输入字符串时保存字符串:
System.out.println("How many words do you want to enter?");
int numVerbs = scan.nextInt();
ArrayList <String> verbs = new ArrayList <String> (numVerbs);
System.out.println("Start entering words:");
for(int i=0;i<=numVerbs;i++){
verbs.add(scan.nextLine());
}
System.out.print(verbs.size());
}
问题在于,当我创建并将字符串添加到列表中,然后打印出arraylist的大小时,它是一个比我想要的大的元素。
例如,我将输入3作为我想要添加的单词数,然后我将输入3个单词。但是,当我打印出arraylist的大小时,它是4 - 而不是3。
也许它与verbs.add有关的空列表? Idk,我很茫然。
答案 0 :(得分:1)
在1
开始循环:
for(int i = 1; i <= numVerbs; i++){ ... }
或将条件从i <= numVerbs
更改为i < numVerbs
for(int i = 0; i < numVerbs; i++){ ... }
这是必要的,因为for循环从0
开始,然后循环直到输入包含的数字,因此您执行的迭代超过了所需的一次。< / p>
答案 1 :(得分:0)
如果您不需要事先向用户询问单词的数量,也可以替换为:while scan.hasNextLine()
的每个循环。