有个问题求助一下各位大佬

问题背景:

【问题描述】

编写一个Student类描述学生对象,输入若干学生对象信息并将其写入文件,然后读出并显示。

【输入形式】
【输出形式】
【样例输入】

3

Chen 19 3200389

 Cheley 19 3100488

 John 23 3400589


【样例输出】

Student name=Chen, age=19, id=:3200389

Student name=Cheley, age=19, id=:3100488

Student name=John, age=23, id=:3400589

个人解决方案

package Fanle;
import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Arrayq app = new Arrayq();
        int n = sc.nextInt();
        for (int i = 0; i < n; i++) {
            String name = sc.next();
            int age = sc.nextInt();
            String id = sc.nextLine();
            app.add(name,age,id);
        }
        try (OutputStream op = new FileOutputStream(
                "Day10\\src\\Fanle.txt");
             ObjectOutputStream ob = new ObjectOutputStream(op))
             {
            ob.writeObject(app);
        } catch (Exception e) {
            e.printStackTrace();
        }
        try(InputStream ip = new FileInputStream("Day10\\src\\Fanle.txt");
            ObjectInputStream oi = new ObjectInputStream(ip)){
            Arrayq sb = (Arrayq) oi.readObject();
            sb.show();
            System.out.println("la");
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}
class Student implements Serializable{
    private final String name;
    private final int age;
    private final String id;

    public Student(String name, int age, String id) {
        this.name = name;
        this.age = age;
        this.id = id;
    }
    public String tString() {
        return "Student " + "name="+ name + ", age=" + age  +", id=:"+ id.substring(1);
    }

    //Student name=Chen, age=19, id=: 3200389
    //Student name=Chen, age=19, id=:3200389
    public String getName() {
        return name;
    }

}
class Arrayq implements Serializable{
    private ArrayList<Student> as = new ArrayList<>();

    public void add(String name,int age,String id)
    {
        Student s = new Student(name,age,id);
        as.add(s);
    }
    public void show(){
        for (int i = 0; i < as.size(); i++) {
            Student s = as.get(i);
            //System.out.println(s.getName() + s.getAge() + s.getId());
            System.out.println(s.tString());
        }
    }
}

在上述代码中的输出部分"id="的后面老多出一个空格,不知道什么原因引起的,最后选择了避开这个问题,用了String.subString()方法解决的,想求证一下是什么原因导致的多出来一个空格。

修改前

输出结果Student name=asd, age=45, id=: sld

修改后:Student name=asd, age=45, id=:sld

  • 11
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值