我怎样才能毫不费力地以这种形式打印这个二维字符串数组 (java)?

How can I print this 2d array of strings in this form without too much effort (java)?

我正在尝试自己创建 "cat finds mouse" 东西,但我做起来遇到了麻烦,因为我打印字段的方式非常复杂/效率低下。

所以我有这个字段:

String[][]field = {
            {"+", "+", "+", "+", "+", "+", "+", "+", "+"},
            {"+", " ", " ", " ", " ", " ", " ", "M", "+"},
            {"+", " ", "+", "+", "+", "+", "+", " ", "+"},
            {"+", " ", "+", "+", " ", " ", "+", " ", "+"},
            {"+", " ", " ", " ", " ", "+", "+", " ", "+"},
            {"+", " ", " ", "+", "+", "+", "+", " ", "+"},
            {"+", "C", " ", " ", " ", " ", " ", " ", "+"},
            {"+", "+", "+", "+", "+", "+", "+", "+", "+"},
        };

它应该打印成这样:

+++++++++
+      M+
+ +++++ +
+ ++  + +
+    ++ +
+  ++++ +
+C      +
+++++++++

这是我的代码,我是如何打印它的。打印效果非常好,但编码和完成的方式非常低效……难道没有办法只用几行代码就可以完成所有这些工作吗?请注意,它必须与我发布的完全一致。

这是我的方法:

public class CatMouseCheap {

    public static void main(String[] args){

        String[][]field = {
            {"+", "+", "+", "+", "+", "+", "+", "+", "+"},
            {"+", " ", " ", " ", " ", " ", " ", "M", "+"},
            {"+", " ", "+", "+", "+", "+", "+", " ", "+"},
            {"+", " ", "+", "+", " ", " ", "+", " ", "+"},
            {"+", " ", " ", " ", " ", "+", "+", " ", "+"},
            {"+", " ", " ", "+", "+", "+", "+", " ", "+"},
            {"+", "C", " ", " ", " ", " ", " ", " ", "+"},
            {"+", "+", "+", "+", "+", "+", "+", "+", "+"},
        };

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

    }

}
System.out.println(
            Arrays.stream(field)
                .map(a -> String.join("", a))
                    .collect(Collectors.joining("\n")));

与java8

合作