Java对齐打印求改进代码

程序目的:打印一个二维阵列,每一个小元素均为汉字,打印出来的二维阵列以平面呈现,列与列,行与行之间尽量对齐.
我试过printf了,但是没有用.
以下是代码:

img

以下是效果图:

img


仍然有参差于其中,但我不知道怎么办了.
求解.

换一种字体,你的中文字符宽度并非正好2个空格的宽度,所以对不齐
或者用tab(\t)代替空格

格式化的字符串后面 加个 \t ,就能对齐了

    public static void main(String[] args){
        String[][] str = new String[2][2];
        str[0] = new String[]{"你好啊", "祖国"};
        str[1] = new String[]{"我们大家", "爱你哟"};
        for (int i = 0; i < 2; i++){
            for(int j = 0; j < 2; j++){
                System.out.printf("%-8s\t", str[i][j]);
            }
            System.out.println();
        }
    }