[英]Grouping array elements of same value in each line while printing - Java
有沒有辦法打印在每一行按字長排序的字符串數組的元素? 所以,考慮下面的代碼,
String[] arr = {"a", "b", "cc", "dd", "ee", "fff", "hhh"};
for (int i = 0; i < 5; i++) {
System.out.println(arr[i]);
}
有一種方法可以改變輸出:
“ab cc dd ee fff hhh”
到
"ab
cc dd ee
ffhhhh”
謝謝你的幫助。
我會使用stream
來完成這項工作:
Arrays.stream(arr).collect(
Collectors.groupingBy(String::length,
Collectors.joining(" ")))
.values().forEach(System.out::println);
輸出:
a b
cc dd ee
fff hhh
在劇透回答之前,先給大家一些提示:
請嘗試自己編寫代碼,因為這有助於您更好地理解 Java。
所以這是我對這個問題的看法。 它不涉及使用索引並避免使用流,因為這不是初學者應該開始的。
public static void main(String[] args) {
String[] arr = {"a", "b", "cc", "dd", "ee", "fff", "hhh"};
int previousLength = Integer.MAX_VALUE;
for (String currentString: arr){
if(previousLength < currentString.length()){
System.out.println("");
}
System.out.print(currentString+" ");
previousLength = currentString.length();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.