簡體   English   中英

打印時將每行中相同值的數組元素分組 - Java

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

在劇透回答之前,先給大家一些提示:

  1. 創建一個變量來存儲前一個字符串的長度。 (設置為 Integer.MAX_Value 開始)
  2. 遍歷數組。 如果 previousLength 小於 currentString 的長度,則插入換行符。
  3. 以空格結尾打印當前字符串。
  4. 將1中的變量設置為當前字符串的長度
  5. 循環結束

請嘗試自己編寫代碼,因為這有助於您更好地理解 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM