如何对文本的数字进行修改,如何覆盖新的数字,对文本的一列和一行怎么修改,覆盖新的数据。
我写了三天了,还是没写出来。急需
java模拟数据表,入门题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-sinJack 2022-01-21 10:50关注
对文本内容的修改,需要先将数据读取出来存集合中,通过修改集合的方式来修改文本内容。
1、读取文本到集合中。
2、修改集合数据。
3、写入文本中。public class Student { //学号 private String sid; //姓名 private String name; //年龄 private String age; //居住地 private String address; public Student() { } public Student(String sid, String name, String age, String address) { this.sid = sid; this.name = name; this.age = age; this.address = address; } public String getSid() { return sid; } public void setSid(String sid) { this.sid = sid; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
import java.util.ArrayList; import java.util.Scanner; public class StudentManager { public static void main(String[] args) { //创建集合对象,用于存储学生数据 ArrayList<Student> array = new ArrayList<Student>(); //用循环完成再次回到主界面 while (true) { //用输出语句完成主界面的编写 System.out.println("-------欢迎来到学生管理系统-------"); System.out.println("1 添加学生"); System.out.println("2 删除学生"); System.out.println("3 修改学生"); System.out.println("4 查看学生"); System.out.println("5 退出"); System.out.println("请输入你的选择:"); //用Scanner实现键盘录入数据 Scanner sc = new Scanner(System.in); String line = sc.nextLine(); //用switch语句完成操作的选择 switch (line) { case "1": //System.out.println("添加学生"); addStudent(array); break; case "2": //System.out.println("删除学生"); deleteStudent(array); break; case "3": //System.out.println("修改学生"); updataStudent(array); break; case "4": //ystem.out.println("查看学生"); findallStudent(array); break; case "5": System.out.println("谢谢使用"); System.exit(0);//JVM退出 } } } public static void addStudent(ArrayList<Student> array){ //键盘录入学生对象所需要的数据,显示提示信息、提示要输入何种信息 Scanner sc = new Scanner(System.in); String sid; while (true) { System.out.println("请输入学生学号:"); sid = sc.nextLine(); boolean flag = isUsed(array, sid); if(flag){ System.out.println("你输入的学号已经被使用,请重新输入"); }else{ break; } } System.out.println("请输入学生姓名:"); String name = sc.nextLine(); System.out.println("请输入学生年龄:"); String age = sc.nextLine(); System.out.println("请输入学生居住地:"); String address = sc.nextLine(); //创建学生对象,把键盘录入的数据赋值给学生对象的成员变量 Student s = new Student(); s.setAddress(address); s.setAge(age); s.setName(name); s.setSid(sid); //将学生对象添加到集合中 array.add(s); //给出添加成功提示 System.out.println("添加学生成功"); } public static void findallStudent(ArrayList<Student> array){ //判断集合中是否有数据,如果没有显示提示信息 if(array.size()==0){ System.out.println("无信息,请先添加信息再查询"); return; } //显示表头信息 System.out.println("学号\t\t姓名\t\t年龄\t\t居住地"); //将集合中数据取出按照对应格式显示学生信息,年龄显示补充岁 for(int i=0; i<array.size();i++){ Student s = array.get(i); System.out.println(s.getSid() + "\t\t" + s.getName()+ "\t\t" +s.getAge()+ "岁\t" + s.getAddress()); } } public static void deleteStudent(ArrayList<Student> array){ //从键盘录入要删除学生学号,显示提示信息 Scanner sc = new Scanner(System.in); System.out.println("请输入要删除的学生的学号:"); String sid = sc.nextLine(); //遍历集合讲对应学生对象从集合中删除. int index = -1; for(int i=0; i<array.size(); i++){ Student s = array.get(i); if(s.getSid().equals(sid)){ index = i; break; } if(index == -1){ System.out.println("该信息不存在,请重新输入"); }else{ array.remove(index); //给出删除成功提示 System.out.println("删除学生成功"); } } } public static void updataStudent(ArrayList<Student> array){ //从键盘录入要修改的学生学号,显示提示信息 Scanner sc = new Scanner(System.in); System.out.println("请输入你要修改的学生的学号:"); String sid = sc.nextLine(); //从键盘录入要修改的学生信息 System.out.println("请输入学生新姓名:"); String name = sc.nextLine(); System.out.println("请输入学生新年龄:"); String age = sc.nextLine(); System.out.println("请输入学生新居住地:"); String address = sc.nextLine(); //创建学生对象 Student s = new Student(); s.setSid(sid); s.setName(name); s.setAddress(address); s.setAge(age); //遍历集合修改对应的学生信息 for(int i=0; i<array.size(); i++){ Student student = array.get(i); if(student.getSid().equals(sid)){ array.set(i,s); break; } } //给出修改成功提示 System.out.println("修改学生成功"); } public static boolean isUsed(ArrayList<Student> array,String sid1){ //如果与集合中的某一个学生学号相同,返回true;如果都不相同,返回false boolean flag = false; for(int i=0; i<array.size(); i++){ Student s = array.get(i); if(s.getSid().equals(sid1)){ flag = true;} break; } return flag; } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 CCF-CSP 2023 第三题 解压缩(50%)
- ¥30 comfyui openpose报错
- ¥20 Wpf Datarid单元格闪烁效果的实现
- ¥15 图像分割、图像边缘提取
- ¥15 sqlserver执行存储过程报错
- ¥100 nuxt、uniapp、ruoyi-vue 相关发布问题
- ¥15 浮窗和全屏应用同时存在,全屏应用输入法无法弹出
- ¥100 matlab2009 32位一直初始化
- ¥15 Expected type 'str | PathLike[str]…… bytes' instead
- ¥15 三极管电路求解,已知电阻电压和三级关放大倍数