如何在Java中打印字符矩阵以便列对齐?
我一直试图在java中打印一个仅由小写字母组成的字符矩阵。起初,我从矩阵条目中定义一个字符串,然后使用JOptionPane打印它,但显然由于字母的间距不同,列没有对齐,所以看起来很糟糕。代码如下:如何在Java中打印字符矩阵以便列对齐?,java,Java,我一直试图在java中打印一个仅由小写字母组成的字符矩阵。起初,我从矩阵条目中定义一个字符串,然后使用JOptionPane打印它,但显然由于字母的间距不同,列没有对齐,所以看起来很糟糕。代码如下: String wordSearch = ""; for(int i = 0; i < 20; i++){ for(int j = 0; j < 20; j++){ wordSearch = wordSearch + matrix[i][j] +"\t";
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);
String wordSearch=”“;
对于(int i=0;i<20;i++){
对于(int j=0;j<20;j++){
wordSearch=wordSearch+matrix[i][j]+“\t”;
}
wordSearch=wordSearch+“\n”;
}
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();
}
for(int i=0;i<20;i++){
对于(int j=0;j<20;j++){
系统输出打印(矩阵[i][j]+“”);
}
System.out.println();
}
输出看起来很完美,列排列得很好
所以我的问题是,如何使用JOptionPane或类似的工具实现相同的结果?为什么在控制台中打印时输出看起来不同
非常感谢您的帮助。这应该可以:
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());
javax.swing.UIManager.put(“OptionPane.font”,新字体(“Courier”,font.PLAIN,16));
final StringBuilder wordSearch=新建StringBuilder();
对于(int i=0;i<20;i++){
对于(int j=0;j<20;j++){
append(矩阵[i][j]).append('\t');
}
追加('\n');
}
showMessageDialog(null,wordSearch.toString());
(未测试)您是否将小部件设置为使用固定宽度字体?像Courier之类的东西,你可以选择HTML
标记和swing
组件。你可以使用格式化程序来对齐fields@RC. 亲爱的RC,我很抱歉我缺乏知识,但我甚至不知道如何做到这一点。你使用了什么格式说明符?类似于%-8d
的东西非常适合对齐。。。但是作为@RC。提到这一点,无论如何你都应该使用固定宽度的字体,非常感谢。我尝试了你的代码,但我得到了以下错误:“找不到符号:类字体”你知道我做错了什么或如何修复它吗?你错过了导入:java.awt.Font
非常感谢。您的代码现在可以工作了,但不幸的是,我仍然在列中遇到对齐问题。