java - 如何以这种形式打印这个二维字符串数组而不需要太多的努力(java)?

标签 java arrays printing output field

我正在尝试自己创建“猫找到老鼠”的东西,但我在做这件事时遇到了麻烦,因为我打印字段的方式非常复杂/效率低下。

所以我有这个字段:

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

关于java - 如何以这种形式打印这个二维字符串数组而不需要太多的努力(java)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42026600/

相关文章:

java - 通过代理网络(如果可用)重定向所有 Android 应用程序网络(使用库)

java - 从文本文件读入并拆分为两个字符串以便能够传递给

ruby - 打印出二维数组

javascript - 为什么我得到一些未定义的项目而不是排序数组?

c# - 实例化数组并一次实例化每个成员

Jquery jFrame 在 IE 中不起作用,但在 FF 中

python - 如何在终端中打印 df 而不丢失格式?

java - 为什么我不能创建大尺寸的数组?

java - Spring MVC 相当于 .Net MVC LinkExtensions.ActionLink 方法

javascript - 仅打印文档的特定部分最简单的想法是什么