如何在 Java 中反轉字串

Mohammad Irfan 2023年10月12日
  1. 使用 Java 中的 reverse() 方法反轉字串
  2. 在 Java 中使用自定義程式碼反轉字串
  3. 使用 Java 中的 append() 方法反轉字串
  4. 使用 Java 中的遞迴來反轉字串
  5. 使用 Java 中的 Stack 來反轉字串
如何在 Java 中反轉字串

本教程介紹瞭如何在 Java 中反轉字串,並列舉了一些示例程式碼來了解它。

反轉字串有幾種方法,比如 reverse()sorted()parallelSort() 等方法。我們來看看例子。

使用 Java 中的 reverse() 方法反轉字串

在這個例子中,我們使用 StringBuilder 類的 reverse() 方法以相反的順序得到字串,我們使用 toString() 方法從 StringBuilder 物件中得到字串物件。請看下面的例子。

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "DelfStack";
    System.out.println(str);
    StringBuilder strb = new StringBuilder(str);
    str = strb.reverse().toString();
    System.out.println(str);
  }
}

輸出:

DelfStack
kcatSfleD

在 Java 中使用自定義程式碼反轉字串

如果你不想使用內建方法,那就使用自定義程式碼,使用迴圈交換字串字元,並將它們收集到一個字元陣列中,進一步轉換為字串。請看下面的例子。

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "DelfStack";
    System.out.println(str);
    char[] ch = str.toCharArray();
    int begin = 0;
    int end = ch.length - 1;
    char temp;
    while (end > begin) {
      temp = ch[begin];
      ch[begin] = ch[end];
      ch[end] = temp;
      end--;
      begin++;
    }
    str = new String(ch);
    System.out.println(str);
  }
}

輸出:

DelfStack
kcatSfleD

使用 Java 中的 append() 方法反轉字串

這是 Java 中另一種反轉字串的方法。在這裡,我們在 for 迴圈中使用 charAt()append() 方法來獲取和儲存 chars 到 StringBuilder 物件中。請看下面的例子。

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "DelfStack";
    System.out.println(str);
    StringBuilder dest = new StringBuilder();
    for (int i = (str.length() - 1); i >= 0; i--) {
      dest.append(str.charAt(i));
    }
    System.out.println(dest);
  }
}

輸出:

DelfStac
kcatSfleD

使用 Java 中的遞迴來反轉字串

遞迴是一種技術,在這種技術中,一個函式一次又一次地呼叫自己,直到達到基本條件。我們可以使用遞迴來反轉字串,如下面的例子。

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "DelfStack";
    System.out.println(str);
    String reverseStr = reverseIt(str, str.length() - 1);
    System.out.println(reverseStr);
  }
  static String reverseIt(String str, int index) {
    if (index == 0) {
      return str.charAt(0) + "";
    }
    char letter = str.charAt(index);
    return letter + reverseIt(str, index - 1);
  }
}

輸出:

DelfStack
kcatSfleD

使用 Java 中的 Stack 來反轉字串

我們可以使用 Stack 類來反轉字串。我們使用 Stack 類的 push() 方法將字元收集到堆疊中,然後使用 pop() 方法將儲存的字元按相反的順序取回。請看下面的例子。

import java.util.Stack;

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "DelfStack";
    System.out.println(str);
    Stack<Character> stack = new Stack<>();
    for (int i = 0; i < str.length(); i++) {
      stack.push(str.charAt(i));
    }
    StringBuilder strb = new StringBuilder();
    while (!stack.empty()) {
      strb.append(stack.pop());
    }
    System.out.println(strb);
  }
}

輸出:

DelfStack
kcatSfleD

相關文章 - Java String