System.out.println("请输入第"+(i+1)+"个人的学号:"); int num=scanner.nextInt(); System.out.println("请输入第"+(i+1)+"个人的姓名:"); String names=scanner.nextLine(); scanner.nextLine(); System.out.println("请输入第"+(i+1)+"个人的所学科目:"); String sub=scanner.nextLine(); Student student=new Student(num,names,sub); studentList.add(student);这个代码为什么无法输出姓名

时间: 2024-01-25 10:02:41 浏览: 22
这个问题可能是由于 `scanner.nextLine()` 在读取完输入数字后没有消耗掉输入缓冲区中的回车符导致的。因此,当你在输入姓名时,`scanner.nextLine()` 会读取到输入缓冲区中的回车符,从而直接跳过了输入姓名的步骤,因此无法输出姓名。 解决方法是在读取完数字后,使用 `scanner.nextLine()` 来将回车符消耗掉,然后再读取姓名,如下所示: ``` System.out.println("请输入第" + (i+1) + "个人的学号:"); int num = scanner.nextInt(); scanner.nextLine(); System.out.println("请输入第" + (i+1) + "个人的姓名:"); String names = scanner.nextLine(); System.out.println("请输入第" + (i+1) + "个人的所学科目:"); String sub = scanner.nextLine(); Student student = new Student(num, names, sub); studentList.add(student); ``` 这样就可以正常输出姓名了。
相关问题

Scanner scanner1=new Scanner(System.in); String a=scanner1.nextLine(); switch (a) { case "学生": { System.out.println("请输入想要存储的学生人数:"); Scanner scanner = new Scanner(System.in); int number = scanner.nextInt(); List<Student> studentList = new ArrayList<>(); for (int i=0;i<number;i++) { System.out.println("请输入第"+(i+1)+"个人的学号:"); int num = scanner.nextInt(); scanner.nextLine(); System.out.println("请输入第"+(i+1)+"个人的姓名:"); String names = scanner.nextLine(); System.out.println("请输入第"+(i+1)+"个人的所学科目:"); String sub = scanner.nextLine(); Student student = new Student(num, names, sub); studentList.add(student); } for (int i=0;i<number;i++) { System.out.println("第"+(i+1)+"个学生的信息"); System.out.println("学号:"+studentList.get(i).getNumber()); System.out.println("姓名:"+studentList.get(i).getName()); System.out.println("科目:"+studentList.get(i).getSubject()); System.out.println(); } }这串代码如何使用hashmap索引list里面的科目

可以将List<Student>中的每个Student对象的subject作为key,将对应的Student对象作为value存入HashMap<String, Student>中,然后就可以通过key来获取对应的Student对象了。代码如下: ``` Map<String, Student> map = new HashMap<>(); for (Student student : studentList) { map.put(student.getSubject(), student); } ``` 然后可以通过如下方式来获取对应科目的学生信息: ``` String sub = "数学"; // 假设要获取数学科目的学生信息 Student student = map.get(sub); if (student != null) { System.out.println("学号:" + student.getNumber()); System.out.println("姓名:" + student.getName()); System.out.println("科目:" + student.getSubject()); } ```

public class Student { private String number;//学号 private String name;//姓名 private String sex;//性别 private String class1;//班级 public Student(String number, String name, String sex, String class1) {//有参构造方法 this.number = number; this.name = name; this.sex = sex; this.class1 = class1; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getClass1() { return class1; } public void setClass1(String class1) { this.class1 = class1; } public class void main add (String[] args) { Scanner in = new Scanner(System.in); Student[] stu = new Student[100]; int num = 0; while (true) { System.out.println("请输入要执行的操作:"); System.out.println("1.添加学生信息"); System.out.println("2.查看学生信息"); System.out.println("3.退出程序"); int choice = in.nextInt(); if (choice == 1) { if (num > stu.length - 1) { System.out.println("系统成员已满"); continue; } System.out.println("请输入学号"); String number = in.next(); for (int i = 0; i < num; i++) { if (stu[i].getNumber().equals(number)) { System.out.println("学号输入重复,请重新输入"); number = in.next(); i = -1; } } System.out.println("请输入姓名"); String name = in.next(); System.out.println("请输入性别"); String sex = in.next(); System.out.println("请输入班级"); String class1 = in.next(); Student student = new Student(number, name, sex, class1); stu[num] = student; num++; System.out.println("添加成功"); } else if (choice == 2) { if (num == 0) { System.out.println("没有学生信息"); continue; } System.out.println("学号\t姓名\t性别\t班级"); for (int i = 0; i < num; i++) { Student student = stu[i]; System.out.println(student.getNumber() + "\t" + student.getName() + "\t" + student.getSex() + "\t" + student.getClass1()); } } else if (choice == 3) { System.out.println("程序已退出"); break; } else { System.out.println("请输入正确的操作编号"); } } } } }中public class void main add (String[] args) {在jdk进行编译时标识符错误

在Java中,一个类只能有一个main方法,而且其签名必须是: ``` public static void main(String[] args) ``` 您的代码中,出现了一个名为add的非法方法签名: ``` public class void main add (String[] args) ``` 因此,在编译时出现了标识符错误。正确的写法应该是: ``` public static void main(String[] args) ``` 请将您的代码改为以下形式: ``` public class Student { // 省略其他代码 public static void main(String[] args) { // 程序逻辑 } } ```

相关推荐

package system; import static system.main.sc; import static system.main.students; import java.util.ArrayList; import java.util.Scanner; public class add { static void add(){ //增加学生信息 Scanner sc = new Scanner(System.in); System.out.print("请输入科目:"); String str4 = sc.next(); System.out.print("请输入您要添加学生的个数:"); int s = sc.nextInt(); //添加学生个数 String number = null; while (true){ System.out.print("请输入您要添加的学号:"); String str = sc.next(); boolean flag =contains(students.number); if(flag){ System.out.print("该学号已录入"); } else{ student.setNumber() } // for (int i = 0; i < s; i++) { // System.out.print("请输入您要添加的学号:"); // String str = sc.next(); // int count = 0; //计数 // for (final Student student : students.size()){ // // } // if (student.getNumber().equals(str)) { //运用了一个string的方法equals(),如果有相同的学号,就是已有此人 // System.out.println("该学生已存在"); // break; // } // count++; // } //for循环遍历每一个学生对象,是否在students中有重复的学号,就不添加,下一个 String name = ("姓名:"); String sex = ("性别:"); String college = ("学院:"); String score = ("成绩:"); if (count == students.size()){ System.out.print(name); String str1 = sc.next(); System.out.print(sex); String str2 = sc.next(); System.out.print(college); String str3 = sc.next(); System.out.print(score); int num = sc.nextInt(); //接收学生信息 Student student = new Student(str,str1,str2,str3,str4,num); students.add(student); //添加学生对象 System.out.println("已成功录入"); } } }这段代码有什么问题

编写程序实现如下功能。使用Random类随机生成0~100的整数作为学生的成绩,输出该成绩,判断这个分数属于ABCDE哪个等级,并输出判断结果。 A:90~100,B:80~89,C:70~79,D:60~69,E:小于60。 编写程序实现如下功能: 显示一个软件的登录页面和菜单对应的选项。 登录界面示例如下: ~~~~~~~~~~~~ 欢迎使用学生信息管理系统 ~~~~~~~~~~~~ 登录—————1 退出—————2 ~~~~~~~~~~~~ 当用户输入1时显示请输入密码,如果输入的密码为123456,则输出文字“登录成功”,否则输出文字“密码错误”。在实验二的第2题基础上,修改其代码使其实现 1. 在显示“登录与退出”界面时,读入用户输入的数值,如果是1,在输出如下界面提示用户输入密码,如果是2则退出程序; 请输入你的密码,#号返回: 2. 在输入密码界面下,如果密码输入错误则提示用户密码错误,继续输入密码,但是输错三次后,则退出程序;如果输入“#",则返回到登录界面,继续提示用户输入登录还是退出;如果输入的为你学号的后6位,则为正确的密码; 3. 密码检验功能必须通过调用方法实现,方法名为checkPSW,返回值为整数: 如果返回值>0,表示密码输入正确; 如果返回值=0,表示密码用户输入了#; 如果返回值<0,表示密码输入密码次数超过三次,在屏幕上输出“你的密码输入错误已经超过三次”,并退出程序;

最新推荐

recommend-type

Java开发案例-springboot-66-自定义starter-源代码+文档.rar

Java开发案例-springboot-66-自定义starter-源代码+文档.rar Java开发案例-springboot-66-自定义starter-源代码+文档.rar Java开发案例-springboot-66-自定义starter-源代码+文档.rar Java开发案例-springboot-66-自定义starter-源代码+文档.rar Java开发案例-springboot-66-自定义starter-源代码+文档.rar Java开发案例-springboot-66-自定义starter-源代码+文档.rar
recommend-type

单家独院式别墅图纸D027-三层-12.80&10.50米-施工图.dwg

单家独院式别墅图纸D027-三层-12.80&10.50米-施工图.dwg
recommend-type

啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦

啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦
recommend-type

课程大作业基于Vue+PHP开发的简单问卷系统源码+使用说明.zip

【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 课程大作业基于Vue+PHP开发的简单问卷系统源码+使用说明.zip Project setup ``` npm install ``` ### Compiles and hot-reloads for development ``` npm run serve ``` ### Compiles and minifies for production ``` npm run build ``` ### Lints and fixes files ``` npm run lint ``` ### Customize configuration See [Configuration Reference](https://cli.vuejs.org/config/).
recommend-type

Django媒体资源学习源代码 (附一套简易Django文件上传源码)

Django FTP MEDIA_ROOT MEDIA_URL 源码
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

HSV转为RGB的计算公式

HSV (Hue, Saturation, Value) 和 RGB (Red, Green, Blue) 是两种表示颜色的方式。下面是将 HSV 转换为 RGB 的计算公式: 1. 将 HSV 中的 S 和 V 值除以 100,得到范围在 0~1 之间的值。 2. 计算色相 H 在 RGB 中的值。如果 H 的范围在 0~60 或者 300~360 之间,则 R = V,G = (H/60)×V,B = 0。如果 H 的范围在 60~120 之间,则 R = ((120-H)/60)×V,G = V,B = 0。如果 H 的范围在 120~180 之间,则 R = 0,G = V,B =
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。