【问题标题】:setfill() and setw() Java equivalent?setfill() 和 setw() Java 等效?
【发布时间】:2012-08-27 19:42:12
【问题描述】:

我有一个任务,我们需要使用 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 中可以做到这样的事情吗?

【问题讨论】:

    标签: java string padding


    【解决方案1】:

    我知道这可能不是您正在寻找的确切内容,但如果您对 printf 及其兄弟姐妹感到满意,请查看String.format()

    【讨论】:

      【解决方案2】:

      有很多方法可以根据您的喜好存储和检索数据 例如:存储在 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. serialize the 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. 反序列化后,您可能必须使用iterator 来调用列表

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

      文字之后就是打印结果了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-10
        • 1970-01-01
        • 1970-01-01
        • 2017-07-20
        • 1970-01-01
        • 2016-04-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多