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