迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

如何在 Java 中反转字符串

作者:迹忆客 最近更新:2023/03/28 浏览次数:

本篇文章介绍了如何在 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

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Do you understand JavaScript closures?

发布时间:2025/02/21 浏览次数:108 分类:JavaScript

The function of a closure can be inferred from its name, suggesting that it is related to the concept of scope. A closure itself is a core concept in JavaScript, and being a core concept, it is naturally also a difficult one.

Do you know about the hidden traps in variables in JavaScript?

发布时间:2025/02/21 浏览次数:178 分类:JavaScript

Whether you're just starting to learn JavaScript or have been using it for a long time, I believe you'll encounter some traps related to JavaScript variable scope. The goal is to identify these traps before you fall into them, in order to av

How much do you know about the Prototype Chain?

发布时间:2025/02/21 浏览次数:150 分类:JavaScript

The prototype chain can be considered one of the core features of JavaScript, and certainly one of its more challenging aspects. If you've learned other object-oriented programming languages, you may find it somewhat confusing when you start

如何从 Pandas 的日期时间列中提取月份和年份

发布时间:2024/04/23 浏览次数:160 分类:Python

我们可以分别使用 dt.year()和 dt.month()方法从 Datetime 列中提取出年和蛾。我们还可以使用 pandas.DatetimeIndex.month 以及 pandas.DatetimeIndex.year 和 strftime()方法提取年份和月份。

如何获取 Pandas DataFrame 的行数

发布时间:2024/04/23 浏览次数:71 分类:Python

本教程介绍如何通过使用 shape,len()来获取 Pandas DataFrame 的行数,以及有多少行元素满足条件。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便