[英]Printing an array in a pattern in java
我建议使用StringJoiner
并格式化String
。 喜欢,
String[] strArr = { "aaa", "bbb", "ccc", "ddd", "eee" };
for (int i = 0; i < strArr.length; i++) {
StringJoiner sj = new StringJoiner("\t");
for (int j = 0; j < i; j++) {
sj.add(String.format("%s", " "));
}
for (int j = i; j < strArr.length; j++) {
sj.add(String.format("%s", strArr[i]));
}
System.out.println(sj);
}
输出(按要求)
aaa aaa aaa aaa aaa
bbb bbb bbb bbb
ccc ccc ccc
ddd ddd
eee
只需在此处再添加一个选项卡System.out.print("\t\t");
String[] strArr = new String[]{"aaa", "bbb", "ccc", "ddd", "eee"};
for (int i = 0; i < strArr.length; i++) {
for (int j = 0; j < i; j++) {
System.out.print("\t\t");
}
for (int k = 0; k < (strArr.length - i); k++) {
System.out.print(strArr[i] + "\t");
}
System.out.println();
}
Output:
aaa aaa aaa aaa aaa
bbb bbb bbb bbb
ccc ccc ccc
ddd ddd
eee
您可以使用IntStream
代替循环。 代码可能如下所示:
String[] arr = new String[]{"aaa", "bbb", "ccc", "ddd", "eee"};
String tab = " ";
String space = " ";
IntStream.range(0, arr.length).forEach(i -> {
IntStream.range(0, i)
.forEach(j -> System.out.print(tab));
IntStream.range(0, arr.length - i)
.forEach(k -> System.out.print(arr[i] + space));
System.out.println();
});
Output:
aaa aaa aaa aaa aaa
bbb bbb bbb bbb
ccc ccc ccc
ddd ddd
eee
或其他值: String tab = "\t";
和String space = "\t";
通过使用String#repeat
,您可以使用单个循环来完成。
public class Main {
public static void main(String[] args) {
String[] strArr = { "aaa", "bbb", "ccc", "ddd", "eee" };
for (int i = 0; i < strArr.length; i++) {
System.out.println("\t".repeat(i) + (strArr[i] + "\t").repeat(strArr.length - i - 1) + strArr[i]);
}
}
}
Output:
aaa aaa aaa aaa aaa
bbb bbb bbb bbb
ccc ccc ccc
ddd ddd
eee
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.