想知道第一个Scanner判定输入的标准在哪里?

awdszxtanwei 2016-08-18 10:11:34
通过Scanner向ArrayList添加值,为什么第一个会自动添加空进去,如下结果部分的红色标记部分。代码如下:
public class ArrayList_AddRemove {
public static void main(String[] args){
ArrayList arrayList = new ArrayList();
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要添加的学生人数:");
int number = scanner.nextInt();
for (int i=0;i<number;i++){
System.out.println("请输入要添加的学生姓名:");
Object add = scanner.nextLine();
arrayList.add(i,add);
}
System.out.println("您添加后的学生名单如下:");
for (Object s:arrayList){
System.out.println(s);
}
System.out.println("请输入您要删除的学生姓名:");
arrayList.remove(scanner.nextLine());
System.out.println("您删除后的学生名单如下:");
for (Object s:arrayList){
System.out.println(s);
}
System.out.println(arrayList.size());
}
}

执行结果如下:
请输入要添加的学生人数:
4
请输入要添加的学生姓名:
请输入要添加的学生姓名:

jack
请输入要添加的学生姓名:
mick
请输入要添加的学生姓名:
tom
您添加后的学生名单如下:

jack
mick
tom
请输入您要删除的学生姓名:
tom
您删除后的学生名单如下:

jack
mick
3
...全文
152 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
awdszxtanwei 2016-08-19
  • 打赏
  • 举报
回复
引用 4 楼 pb5211314 的回复:
nextLine()的问题、、、、、、、、、下面帮你改了下,赏点分呗 import java.util.ArrayList; import java.util.Scanner; public class ArrayList_AddRemove { public static void main(String[] args){ ArrayList arrayList = new ArrayList(); Scanner scanner = new Scanner(System.in); System.out.println("请输入要添加的学生人数:"); int number = scanner.nextInt(); for (int i=0;i<number;i++){ System.out.println("请输入要添加的学生姓名:"); String addname = scanner.next(); arrayList.add(i,addname); } System.out.println("您添加后的学生名单如下:"); for (Object s:arrayList){ System.out.println(s); } System.out.println("请输入您要删除的学生姓名:"); String dename = scanner.next(); System.out.println("您删除后的学生名单如下:"); arrayList.remove(dename); for (Object s:arrayList){ System.out.println(s); } System.out.println("删除后还剩"+arrayList.size()+"个名单!"); } }
我已近查到了,给你吧哈哈哈哈哈哈哈
weixin_34796041 2016-08-18
  • 打赏
  • 举报
回复
for循环number那也执行了一个nextInt,导致第一次nextLine扫不到东西
awdszxtanwei 2016-08-18
  • 打赏
  • 举报
回复
引用 1 楼 qnmdcsdn 的回复:
查下nextInt与nextLine的区别
查了资料,就是说,当next()、nextInt()、nextDouble()等等这些之后,你如果不再加一条in.nextLine()的话,下面如果用到了类似str = in.nextLine(); 这条语句的话,会首先读取上面next()、nextInt()、nextDouble()等等这些语句的回车作为一条默认的
  • 打赏
  • 举报
回复
查下nextInt与nextLine的区别
  • 打赏
  • 举报
回复
nextLine()的问题、、、、、、、、、下面帮你改了下,赏点分呗 import java.util.ArrayList; import java.util.Scanner; public class ArrayList_AddRemove { public static void main(String[] args){ ArrayList arrayList = new ArrayList(); Scanner scanner = new Scanner(System.in); System.out.println("请输入要添加的学生人数:"); int number = scanner.nextInt(); for (int i=0;i<number;i++){ System.out.println("请输入要添加的学生姓名:"); String addname = scanner.next(); arrayList.add(i,addname); } System.out.println("您添加后的学生名单如下:"); for (Object s:arrayList){ System.out.println(s); } System.out.println("请输入您要删除的学生姓名:"); String dename = scanner.next(); System.out.println("您删除后的学生名单如下:"); arrayList.remove(dename); for (Object s:arrayList){ System.out.println(s); } System.out.println("删除后还剩"+arrayList.size()+"个名单!"); } }

62,625

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧