求解如何从控制台向对象数组中输入数据

巴顿.com 2019-04-10 10:42:08
达到头两张图的效果
...全文
210 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
巴顿.com 2019-04-11
  • 打赏
  • 举报
回复
引用 1 楼 紊卜娈的回复:
跟数组没有关系,你第二次循环的时候scanner获取的是分数,而你输入的是string,所以类型转换出错。把scanner输入合并成一条吧,中间用-分隔; public static void main(String[] args) { A [] a= new A[2]; Scanner scanner = new Scanner(System.in); for (int i =0;i<a.length;i++){ System.out.println("请输入第"+(i+1)+"个学生的姓名和年龄,中间用-分隔"); String str = scanner.next(); String[] split = str.split("-"); a[i] = new A(split[0],Integer.parseInt(split[1])); } System.out.println("学生的信息是"+a[0]+a[1]); }
已经调式,把原代码中nextLine改next就行了,但是为啥用nextLine输入,已经换行了,不能达到效果呢?
咦哟~~~ 2019-04-11
  • 打赏
  • 举报
回复
跟数组没有关系,你第二次循环的时候scanner获取的是分数,而你输入的是string,所以类型转换出错。把scanner输入合并成一条吧,中间用-分隔; public static void main(String[] args) { A [] a= new A[2]; Scanner scanner = new Scanner(System.in); for (int i =0;i<a.length;i++){ System.out.println("请输入第"+(i+1)+"个学生的姓名和年龄,中间用-分隔"); String str = scanner.next(); String[] split = str.split("-"); a[i] = new A(split[0],Integer.parseInt(split[1])); } System.out.println("学生的信息是"+a[0]+a[1]); }
咦哟~~~ 2019-04-11
  • 打赏
  • 举报
回复
这个跟换行没啥关系,你是获取了两次的参数,只是第二次循环 它只是获取的一个。具体问题我也不知道 只能说应该是scanner输入的BUG
咦哟~~~ 2019-04-11
  • 打赏
  • 举报
回复
scanner输入的BUG好像,第一次其实没有问题的,但是循环的第二次添加的时候 它只出现了一次输入,就是double,但是你输入的字符串name所以它格式错误。

62,614

社区成员

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

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