如何在 Java 中反轉字串
Mohammad Irfan
2023年1月30日
2020年10月15日
-
使用 Java 中的
reverse()
方法反轉字串 - 在 Java 中使用自定義程式碼反轉字串
-
使用 Java 中的
append()
方法反轉字串 - 使用 Java 中的遞迴來反轉字串
-
使用 Java 中的
Stack
來反轉字串
本教程介紹瞭如何在 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