2015-08-02 4 views
0

Этот код работает и получает данные от databasae. Взгляните на результат, и вы увидите проблему? Как я могу отформатировать эти данные, чтобы cols хорошо отображались в строке. Я не хочу использовать сложную таблицу или набор данных для вывода моего результата. Я просто хочу поставить «\ t» между каждым cols.Как я могу форматировать данные, чтобы их отображение было встроено?

здесь выход:

ID FIRSTNAME LASTNAME USERNAME AGE 
    2  Dave Bill DaveB 30 
    3  Jane Mark JaneM 37 
    4  Voo Gorge VooG 50 




public class ex02 { 
public static void main(String[] args) { 
    String url = "jdbc:ucanaccess:Database11.accdb"; 

    Connection con; 
    Statement stmt; 
    String query = "Select * from user"; 

    try { 
     Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); 
    } catch (java.lang.ClassNotFoundException e) { 
     System.err.print("ClassNotFoundException: "); 
     System.err.println(e.getMessage()); 
    } 

    try { 
     con = DriverManager.getConnection(url, "", ""); 
     stmt = con.createStatement(); 
     ResultSet rs = stmt.executeQuery(query); 

     ResultSetMetaData rsmd = rs.getMetaData(); 
     int columns = rsmd.getColumnCount(); 
     for (int i = 1; i <= columns; i++) { 
      System.out.print(rsmd.getColumnLabel(i) + "\t"); 
     } 
     System.out.println(); 

     // Display columns data from database 
     while (rs.next()) { 
      for (int i = 1; i <= columns; i++) { 
       System.out.print(rs.getString(i) + "\t"); 
      } 
      System.out.println(); 
     } 

     stmt.close(); 
     con.close(); 
    } catch (SQLException ex) { 
     System.err.println("SQLException: " + ex.getMessage()); 
    } 
} 

}

+0

См http://stackoverflow.com/questions/388461/how-can-i-pad-a-string-in-java – astidham2003

ответ

0

Вы можете посмотреть в StringUtils.rightPad() из Apache Commons (или кода что-то эквивалентное сами). Использование RightPad в сочетании с ограничением значения столбца до максимальной длины должно дать вам хорошо отформатированный вывод.

0

Вы можете влево или вправо выравнивать свои столбцы на фиксированную длину. Вот пример, устанавливающий их все одинаковое оправдание.

public static void main(String[] args) throws Exception { 
    List<String[]> dataTable = new ArrayList() {{ 
     add(new String[] {"ID", "FIRSTNAME", "LASTNAME", "USERNAME", "AGE"}); 
     add(new String[] {"2", "Dave", "Bill", "DaveB", "30"}); 
     add(new String[] {"3", "Jane", "Mark", "JaneM", "37"}); 
     add(new String[] {"4", "Voo", "Gorge", "VooG", "50"}); 
    }}; 

    // Left justified 15 character width 
    System.out.println("Left Justified"); 
    for (String[] row : dataTable) { 
     for (String col : row) { 
      System.out.printf("%-15s", col); 
     } 
     System.out.println(); 
    } 
    System.out.println(); 

    // Right justified 15 character width 
    System.out.println("Right Justified"); 
    for (String[] row : dataTable) { 
     for (String col : row) { 
      System.out.printf("%15s", col); 
     } 
     System.out.println(); 
    } 
} 

Результаты:

Left Justified 
ID    FIRSTNAME  LASTNAME  USERNAME  AGE    
2    Dave   Bill   DaveB   30    
3    Jane   Mark   JaneM   37    
4    Voo   Gorge   VooG   50    

Right Justified 
      ID  FIRSTNAME  LASTNAME  USERNAME   AGE 
       2   Dave   Bill   DaveB    30 
       3   Jane   Mark   JaneM    37 
       4   Voo   Gorge   VooG    50 
Смежные вопросы