我怎样才能毫不费力地以这种形式打印这个二维字符串数组 (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
合作
我正在尝试自己创建 "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
合作