[英]how to print Multiple String arrays output in a single line
我有3个String数组。 我想在Java中一个接一个地打印所有3个单个数组。 所以像我的2个数组看起来像-
o
ooo
ooooo
ooo
o
o o
ooooo
ooo
ooooo
o oo
我想一个接一个地打印数组的每个元素(彼此相邻)
当前代码结果-
o
ooo
ooooo
ooo
o
o o
ooooo
ooo
ooooo
o oo
o o
ooo
ooooo
ooo
o
如此预期的输出
o o o o o
ooo ooooo oooo
ooooo ooo oooo
ooo ooooo oooo
上面的输出可能与输入不同,但是它只是我正在显示的示例。 这是我期望打印的方式。
当前代码
String[] tp1 = { " o ", " ooo ", "ooooo", " ooo ", " o " };
String[] tp2 = { " o o", "ooooo", " ooo ", "ooooo", " o oo" };
String[] tp3 = { " o o ", " ooo ", "ooooo", " ooo ", " o " };
List<String[]> values = new ArrayList<>();
values.add(tp1);
values.add(tp2);
values.add(tp3);
for (String[] strings : values) {
String output = "";
for (String string : strings) {
output += string;
output += "\n";
}
System.out.print(output);
}
您需要反转for循环。 因此,您不能for each
语法使用。
采用,
for (int i = 0; i < tp1.length; i++) {
for (int j = 0; j < values.size(); j++) {
System.out.print(values.get(j)[i]);
}
System.out.println(" ");
}
使用Java 8,您可以像下面这样使用新的forEach和Lambda:
values.forEach(value -> {
Arrays.asList(value).forEach(array -> System.out.print(array));
System.out.println();
});
导致
o ooo ooooo ooo o
o oooooo ooo ooooo o oo
o o ooo ooooo ooo o
如果您真的想要这样:
o o o o o
ooo ooooo ooo
ooooo ooo ooooo
ooo ooooo ooo
o o oo o
您可以这样做:
for (int i=0; i<tp1.length; i++) {
final int j = i;
values.forEach(value -> System.out.print(value[j]));
System.out.println();
};
但是,我建议您翻转列表和/或数组。 由于尚不清楚所有数组tp1..3是否具有相同的长度。 例如,这种方式:
String[] tp1 = { " o ", " o o", " o o "};
String[] tp2 = { " ooo ", "ooooo", " ooo "};
String[] tp3 = { "ooooo", " ooo ", "ooooo" };
String[] tp4 = { " o ", " o oo" , " o " };
ArrayList<String[]> values = new ArrayList<>();
values.add(tp1);
values.add(tp2);
values.add(tp3);
values.add(tp4);
values.forEach(value -> {
Arrays.asList(value).forEach(array -> System.out.print(array));
System.out.println();
});
要获得该输出,您不需要values
变量。 您必须在一行中输出所有数组的第一个字符串,因此请将for
循环更改for
for (int i = 0; i < 5; i++) {
System.out.println(tp1[i]+tp2[i]+tp3[i]);
}
我认为这应该可以解决您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.