如何在 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