首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 字串反轉兩種實現方式:陣列交換法與 Collections.reverse

     編輯:Java 綜合教學

Java 字串反轉兩種實現方式:陣列交換法與 Collections.reverse

需求

將字串 "I LOVE JAVA" 按單詞反轉為 "JAVA LOVE I"。

方式一:手動陣列交換

public String[] reverse(String str) {
    String[] words = str.split(" ");        // 分割單詞
    int len = words.length;
    String[] result = new String[len];
    for (int i = 0; i < len; i++) {
        result[i] = words[len - i - 1];     // 頭尾交換邏輯
        System.out.print(result[i] + " ");
    }
    return result;
}

方式二:Collections.reverse (推薦)

public void reverse2(String str) {
    String[] words = str.split(" ");
    List<String> list = Arrays.asList(words); // 固定長度 List
    Collections.reverse(list);                // 原地反轉
    for (String w : list) System.out.print(w + " ");
}

執行結果

public static void main(String[] args) {
    String str = "I LOVE JAVA";
    new ReverseString().reverse2(str);
}
// 輸出: JAVA LOVE I

擴展:字元級反轉 (非單詞)

// StringBuilder 內建 reverse (最高效)
public String reverseChars(String s) {
    return new StringBuilder(s).reverse().toString();
}

// 手動雙指針
public String reverseCharsManual(String s) {
    char[] arr = s.toCharArray();
    for (int i = 0, j = arr.length - 1; i < j; i++, j--) {
        char tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp;
    }
    return new String(arr);
}

效能建議

  • 單詞反轉:Collections.reverse 代碼簡潔、可讀性佳
  • 字元反轉:StringBuilder.reverse() 原生優化、無額外物件分配
  • 避免 String += 迴圈拼接 (O(n²)),必須用 StringBuilder 或 String.join
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved