3

我有一个任务,我们需要使用 toString() 方法创建一个 User 类。toString 方法应该返回一个包含用户所有信息的字符串。我们需要创建一个包含 50 个用户对象的数组,并在单独的行上打印有关每个用户的信息。问题是,我想把所有东西都放在一个整齐的桌子上,所有字符串的长度都一样。例如:

User Name          Password          Full Name                     Email
___________________________________________________________________________________________
shortUser          12345             John Smith                    jSmith@shortnames.com
thisUserIsLonger   1234567890        Smitty Werbenjagermanjensen   Smitty@thisOneIsLong.com

我想让所有内容保持一致,如上表所示。这在 C++ 中很容易,因为我可以使用 setw() 根据字段的大小动态填充空格。在 Java 中这样的事情可能吗?

4

2 回答 2

2
于 2012-09-03T03:53:28.423 回答
0

有很多方法可以存储数据并根据需要进行检索,例如:存储在 DBMS 中或序列化数据

由于没有太多数据,我会坚持序列化。

  1. 首先,您需要创建 person be 类。

    class Person{
    String name;
    String pwd;
    String email;
    String fullName;
    
    // make the getters and setters
    
    }
    
  2. 使用 setter设置Person数据(您可以使用循环)

  3. 将对象 person 添加到 ArrayList

    arrayListObj.add(person1);
    
  4. 序列化 ArrayList

    尝试 { System.out.println("序列化列表"); FileOutputStream fout = new FileOutputStream("list.dat"); ObjectOutputStream oos = new ObjectOutputStream(fout); oos.writeObject(arrayListObj); oos.close(); } 捕捉(异常 e){ e.printStackTrace(); }

  5. 反序列化如下

     try {
         FileInputStream fin = new FileInputStream("list.dat");
         ObjectInputStream ois = new ObjectInputStream(fin);
         List<String> list = (ArrayList) ois.readObject();
    
         for (String s : list){
             System.out.println(s);
         }
    
         ois.close();
     }
     catch (Exception e) { 
         e.printStackTrace(); 
     }
    
  6. 反序列化后,您可能必须使用迭代器来调用列表

这些是您实现目标可以遵循的基本步骤!

说完之后就是打印结果了。

于 2012-09-03T04:18:28.393 回答