如何在Java中打印char矩阵以使列对齐?

时间:2013-06-24 05:37:08

标签: java

我一直在尝试打印一个只包含java中小写字母的char矩阵。起初我在矩阵条目中定义了一个String,然后使用JOptionPane来打印它,但显然由于字母的间距不同,列没有对齐,所以它看起来很糟糕。代码如下:

String wordSearch = ""; 
for(int i = 0; i < 20; i++){   
  for(int j = 0; j < 20; j++){
    wordSearch = wordSearch + matrix[i][j] +"\t";    
  } 
wordSearch = wordSearch + "\n"; 
} 
JOptionPane.showMessageDialog(null, wordSearch);

然后我尝试使用System.out打印矩阵,如下所示

  for(int i = 0; i < 20; i++){
    for(int j = 0; j < 20; j++){
      System.out.print(matrix[i][j] +"   ");
    }
  System.out.println();
  }

并且输出看起来很完美,列完全匹配。

所以我的问题是如何使用JOptionPane或类似的方法获得相同的结果?当我在控制台中打印输出时,为什么输出会有所不同?

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

这应该有效:

javax.swing.UIManager.put("OptionPane.font", new Font("Courier", Font.PLAIN, 16));
final StringBuilder wordSearch = new StringBuilder(); 
for (int i = 0; i < 20; i++){   
    for (int j = 0; j < 20; j++){
        wordSearch.append(matrix[i][j]).append('\t');    
    } 
    wordSearch.append('\n'); 
} 
JOptionPane.showMessageDialog(null, wordSearch.toString());

(未经测试)