將字串 "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;
}
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