setfill()和setw()Java等价物?

setfill()和setw()Java等价物?,java,string,padding,Java,String,Padding,我有一个赋值,要求我们使用toString()方法创建一个用户类。toString方法应该返回一个包含用户所有信息的字符串。我们需要创建一个包含50个用户对象的数组,并在单独的行上打印每个用户的信息。问题是,我想把所有的东西都放在一张整洁的桌子上,所有的绳子长度都一样。例如: User Name Password Full Name Email ______________________________________

我有一个赋值,要求我们使用toString()方法创建一个用户类。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中是否可能出现类似的情况?

我知道这可能不是您想要的,但如果您对printf及其兄弟姐妹感到满意,请看一看

有许多was可以存储数据并按您的喜好检索 例如:存储在DBMS中或序列化数据

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

  • 首先,您需要创建personbeen类

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

  • 将对象person添加到ArrayList

    arrayListObj.add(person1);
    
  • 试一试{ System.out.println(“序列化列表”); FileOutputStream fout=新的FileOutputStream(“list.dat”); ObjectOutputStream oos=新的ObjectOutputStream(fout); oos.writeObject(ArrayListObject); oos.close(); } 捕获(例外e){ e、 printStackTrace(); }

  • 反序列化如下

     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(); 
     }
    
    试试看{
    FileInputStream fin=新的FileInputStream(“list.dat”);
    ObjectInputStream ois=新ObjectInputStream(fin);
    List=(ArrayList)ois.readObject();
    用于(字符串s:列表){
    系统输出打印项次;
    }
    ois.close();
    }
    捕获(例外e){
    e、 printStackTrace();
    }
    
  • 反序列化之后,您可能必须使用来调用列表

  • 这些是实现目标的基本步骤

    在文字之后,它只是关于打印结果