[英]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.