方法一:StringBuilder.reverse()(最簡單)
String str = "12345";
String reversed = new StringBuilder(str).reverse().toString();
System.out.println(reversed); // 54321
方法二:字元陣列雙指針交換
char[] arr = str.toCharArray();
for (int i = 0, j = arr.length - 1; i < j; i++, j--) {
char tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp;
}
String reversed = new String(arr);
方法三:遞迴(教學用)
public static String reverseRec(String s) {
return s.isEmpty() ? s : reverseRec(s.substring(1)) + s.charAt(0);
}
注意事項
- 輸入為數值型別時,先
String.valueOf(num) 轉字串。
- 若需保留前導零(如 "00123" → "32100"),字串處理即可;若轉數值會丟失前導零。
- 超長字串建議用 StringBuilder 避免遞迴堆疊溢位。