2012-09-03 88 views
2

我有一個任務,我們需要用toString()方法創建一個User類。 toString方法應返回一個字符串,其中包含有關用戶的所有信息。我們需要創建一個包含50個用戶對象的數組,並在單獨的行上打印有關每個用戶的信息。問題是,我想把所有的字符串放在一個整齊的表中,並且所有的字符串長度都一樣。因此,舉例來說:setfill()和setw()Java是否等價?

User Name   Password   Full Name      Email 
___________________________________________________________________________________________ 
shortUser   12345    John Smith     [email protected] 
thisUserIsLonger 1234567890  Smitty Werbenjagermanjensen [email protected] 

我想保持所有對齊,因爲它在上表中。這在C++中很容易,因爲我可以使用setw()根據字段的大小動態地填充空格。在Java中是這樣的可能嗎?

回答

2

我知道這可能不是你正在尋找確切的事情,但如果你是舒適與printf和它的兄弟姐妹,一起來看看在String.format()

0

有許多是存儲數據和檢索的您參訪 例如:商店在DBMS或序列化數據

由於沒有大量的數據I'would堅持系列化。

  1. 首先你需要創建一個人被上課。
使用setter方法(你可以使用一個循環)

  • 的對象者添加到一個ArrayList中

    arrayListObj.add(PERSON1)

    class Person{ 
        String name; 
        String pwd; 
        String email; 
        String fullName; 
    
    // make the getters and setters 
    
    } 
    
    1. 集pserson數據;

    2. serialize the ArrayList

    try { 
        System.out.println("serializing list"); 
        FileOutputStream fout = new FileOutputStream("list.dat"); 
        ObjectOutputStream oos = new ObjectOutputStream(fout); 
        oos.writeObject(arrayListObj); 
        oos.close(); 
    } 
    catch (Exception e) { 
        e.printStackTrace(); 
    } 
    
    1. 反序列化如下
    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(); 
        } 
    
    1. 反序列化,你可能需要使用iterato R鍵調用列表

    這些是您可以遵循,以實現你的目標的基本步驟後!

    之後的話就是打印結果。

    相關問題