setfill()和setw()Java等价?

时间:2012-09-03 03:17:31

标签: java string padding

我有一个赋值,我们需要使用toString()方法创建一个User类。 toString方法应该返回一个字符串,其中包含有关用户的所有信息。我们需要创建一个包含50个User对象的数组,并在单独的行上打印有关每个用户的信息。问题是,我希望将所有内容保存在一个整齐的表中,所有字符串的长度相同。例如:

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

有很多是存储数据并按照您的喜好进行检索 例如:存储在DBMS中或序列化数据

由于数据不多,我会坚持序列化。

  1. 首先,你需要创建一个人类。

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

  3. 将对象人物添加到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();   }   catch(例外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来调用列表

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

    单词之后只是打印结果。