2011-04-06 103 views
0
System.out.println("Name\tRollno\tAddress\tPercentage"); 
while(rs.next()) 
{ 
name=rs.getString(1); 
lname=rs.getString(2); 
address=rs.getString(3); 
city=rs.getString(4); 

    System.out.print(name+"\t\t"); 

    if(lname.length()<=7) 
{ 
    System.out.print(lname+"\t\t"); 
} 
else 
    System.out.print(lname+"\t"); 

if(address.length()<=7) 
{ 
    System.out.print(address+"\t\t"); 
} 
else 
    System.out.print(address+"\t"); 

    System.out.println(city); 
} 

該數據不在標題名稱地址等下方。 如何格式化輸出?誰能幫我?無法格式化輸出

回答

1

儘管會的String.format工作完美,我斗膽向PrintStream.printf()。 下面的代碼將打印出你想要的完美列。根據您在結果集中有實際值,則可能需要更改值列

int nameWidth = 15 
int rollNumberWidth = 10 
int adddressWidth = 25 
int percentWidth = 5 
String format = "%" + nameWidth + "s" 
        + "%" + rollNumberWidth + "s" 
        + "%" + addressWidth + "s" 
        + "%" + percentWidth + "s\n"; 
System.out.printf(format ,"Name", "Rollno", "Address", "Percentage"); 
while(rs.next()) 
{ 
    name = rs.getString(1); 
    lname = rs.getString(2); 
    address = rs.getString(3); 
    city = rs.getString(4); 
    System.out.printf(format , name, lname, address, city); 
} 
4

我會建議使用String.format方法%15s其中15是列的寬度,可以是任何你喜歡的。

使用"\t"很大程度上取決於您如何顯示結果,例如,在文本編輯器中,製表符的寬度可以是用戶選擇的任何東西。

http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#format%28java.lang.String,%20java.lang.Object...%29

+0

好建議的寬度,但你所提供的鏈接是一個老版本的Java。 – jzd 2011-04-06 15:27:30

+0

你能給我例子在我的問題上下文 – coder 2011-04-06 15:37:34

+0

http://download.oracle.com/javase/7/docs/api/java/lang/String.html#format%28java.lang.String,%20java.lang.Object ...%29說同樣的事情。 – 2011-04-06 15:37:59