该代码工作正常,并从数据库获取数据。看一看输出,你会看到问题吗?我如何格式化这些数据,以便cols可以很好地内联显示。我不想使用复杂的表或数据集输出我的结果。我只想在每个科尔之间加上“t”。
这里是输出:
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());
}
}}
发布于 2015-08-02 21:25:35
您可以从ApacheCommons查看StringUtils.rightPad() (或者自己编写一些类似的代码)。将rightPad与将列值限制为最大长度相结合,会给您提供一个格式良好的输出。
发布于 2015-08-03 02:19:29
可以用固定长度对齐列进行左或右对齐。这里有一个例子,将它们都设置为相同的理由。
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 50https://stackoverflow.com/questions/31776704
复制相似问题