如何在 Java 中进行反向字符串?
已发表: 2023-01-06字符串是字符序列,在 Java 中被视为对象。 它是 Java 中的一个对象,用于将数据存储在字符数组中。 反转的字符串称为反转字符串。 例如,'program' 字符串的反面是 'margorP'。
目录
Java中字符串反转背后的逻辑:
可以使用多种方法来反转字符串,每种方法都使用不同的函数。 虽然使用的方法不同,但字符串反转背后的基本过程几乎相同。 使用的典型逻辑是:
- 使用用户输入或代码输入字符串。
- 从最后一个位置开始获取字符串的字符并将它们保存在任何变量中。
- 显示输出。
从世界一流大学在线学习软件开发课程。 获得执行 PG 课程、高级证书课程或硕士课程,以快速推进您的职业生涯。
Java中反转字符串的各种方法:
- 使用 StringBuffer 或 StringBuilder
- 使用反向迭代
- 使用 charAt() 方法
- 使用 ArrayList 对象
- 使用递归
- 将字符串转换为字节
- 使用堆栈
让我们详细了解这些方法中的每一个。
软件工程热门课程和文章
热门节目 | |||
软件开发执行 PG 课程 - IIIT B | 区块链证书课程 - PURDUE | 网络安全证书计划 - 普杜 | 计算机科学硕士 - IIIT B |
其他热门文章 | |||
2021-22 年美国云工程师薪资 | AWS 解决方案架构师在美国的薪水 | 美国的后端开发人员薪水 | 美国的前端开发人员薪水 |
Web开发人员在美国的薪水 | 2022 年 Scrum Master 面试问题 | 如何在 2022 年开始网络安全职业? | 工程专业学生在美国的职业选择 |
1. 通过 StringBuilder / StringBuffer
StringBuffer 或 StringBuilder 类有一个内置方法 reverse() 可以反转字符串中的字符。 它以相反的顺序替换字符的顺序。 该方法是实现java中字符串反转逻辑的静态方法。
StringBuffer 和 StringBuilder 是 Java 中的两个实用程序类,用于管理字符串操作的资源分配。
使用字符串缓冲区:
使用 StringBuffer 反转字符串的 Java 程序:
公共类 ExampleofReverseString{
public static void main(String[] args) {
字符串 str1 = “苹果”;
//在 rev 变量中存储反转的字符串顺序
String rev = new StringBuffer(str1).reverse().toString();
//打印反转前的字符串
System.out.println(“\反转前的字符串为:”+str1);
//打印反转后的字符串
System.out.println(“反转后的字符串为:”+rev);
}
}
输出:
反转前的字符串是:Apple
反转后的字符串为:elppA
在上面的示例中,作为输入提供的字符串将使用 StringBuffer 进行缓冲。 然后使用 reverse() 方法将其反转。 缓冲区反转后,将使用 toString() 方法将其转换为字符串。
使用字符串生成器:
与 StringBuffer 类相比,StringBuilder 类更受欢迎。 它更快而且不同步。
使用 StringBuilder 反转字符串的 Java 程序:
公共类 ExampleofReverseString{
public static void main(String[] args) {
String str1 = “学校”;
//在 rev 变量中存储反转的字符串
String rev = new StringBuilder(str1).reverse().toString();
//打印反转前的字符串
System.out.println(“\n反转前的字符串:”+str1);
//打印反转后的字符串
System.out.println(“反转后的字符串:”+rev);
}
}
输出:
反转前的字符串:学校
反转前的字符串:loohcS
在上面的代码中,使用了 StringBuilder 类的对象。 相应的 StringBuilder 对象内存效率高、可变且执行速度快。 该对象调用内置的 reverse() 方法来提供所需的输出。
2.通过反向迭代
使用反向迭代反转字符串的 Java 程序:
公共类 StringReversal {
public static String reverseString(String st){
char ch[]=st.toCharArray();
字符串转=””;
for(int i=ch.length-1;i>=0;i–)
{
rev+=ch[i];
}
返回转速;
}
}
公共类 TestStringReversal {
public static void main(String[] args) {
System.out.println(StringReversal.reverseString(“我是老师”));
System.out.println(StringReversal.reverseString(“我教英语科目”));
}
}
输出:
我很高兴
我 hcaet hsilgnE tcejbus
在上述java中的反向字符串程序中,输入字符串的字符使用for循环从最后一个位置开始存储在rev+变量中。 存储所有字符后,反转的字符串将显示在输出中。
可以使用While循环进行反向迭代,其代码如下:
公共类 StringReversal {
public static void main(String[] args)
{
String stringInput = “这个字符串”;
int StrLength=stringInput.length();
而(StrLength > 0)
{
System.out.print(stringInput.charAt(StrLength -1));
长度——;
}
}
}
输出:
GnirtS 西特
3. 使用 charAt() 方法
其Java程序如下:
公共类 ExampleofReverseString {
public static void main(String[] args) {
字符串 str = “学习 Java”;
//将反转的字符串存储在 revv 变量中
字符串 revv = “”;
//字符串的长度将存储在len中
int len=str.length();
for(int i=len-1;i>=0;i–)
revv = revv + str.charAt(i);
//打印反转前的字符串
System.out.println(“\n反转操作前的字符串:”+str);
//打印反转后的字符串
System.out.println(“反转后的字符串:”+ revv);
}
}
输出:
反转操作前的字符串:学习Java
反转操作前的字符串:avaJ nraeL
在这个反转字符串的 java 程序中,输入的字符串字符存储在 revv 变量中,从最后一个位置开始使用 for 循环。 存储所有字符后,反转的字符串将反映在输出中。
4.使用ArrayList对象
其Java程序如下:
导入 java.util.ArrayList;
导入 java.util.Collections;
导入java.util.List;
导入 java.util.ListIterator;
公共类 ExampleofReverseString {
public static void main(String[] args) {
String str = “享受编码”;
//将输入字符串转换为字符数组
char ch[]=str.toCharArray();
// 将字符数组添加到 ArrayList 的对象
列表<字符> obj = new ArrayList<>();
对于(字符 c: ch)
obj.add(c);
// 将 ArrayList 的对象传递给集合
集合.reverse(obj);
//创建列表迭代器的对象以在列表上重复
ListIterator objnew = obj.listIterator();
//打印反转前的字符串
System.out.println(“\n反转操作前的字符串:”+ str);
//打印反转后的字符串
System.out.println(“\n反转后的字符串:”);
while (objnew.hasNext())
System.out.print(objnew.next());
}
}
输出:
反转操作前的字符串:Enjoy coding
反转操作后的字符串:gnidoc yojnE
这个反转字符串的 java 程序将输入字符串的字符存储在 ArrayList 对象中。 它在集合中使用 reverse() 方法进行反转。 迭代器遍历列表并打印反转后的字符串。
5.使用递归
其Java程序如下:
公共类 ExampleofReverseString {
// 定义反转函数
字符串转速(字符串 str){
// 如果字符串的长度为零,则返回 null
如果(海峡长度()== 0)
{
返回 ” ”;
}
//否则返回以下方法产生的字符
返回 str.charAt(str.length()-1) + revs(str.substring(0,str.length()-1));
}
public static void main(String[] args)
{
//创建一个类的对象
ExampleofReverseString r = new ExampleofReverseString ();
//输入字符串
String str = “Java 大师”;
//打印反转前的字符串
System.out.println(“\n反转操作前的字符串:”+ str);
//打印反转后的字符串
System.out.println(“\n反转后的字符串:” + r.revs(str));
}
输出:
反转操作前的字符串:Java精通
反转操作后的字符串:avaJ ni retsaM
在此 Java 程序中生成了一个递归函数。 它检查字符串的长度和十个反转。 它的工作原理与java 中的反向函数相同。
6. 通过将字符串转换为字节
它使用 getBytes() 方法将输入字符串转换或拆分为字节。 此时,字节数组长度等于输入字符串的长度。 然后程序以相反的顺序获取字节并将它们保存在一个新的字节数组中。
在下面的代码中,临时生成了一个字节数组。 创建了双字节数组 - 一个用于存储转换后的字节,另一个用于以相反顺序保存结果。
其Java程序如下:
public static void main(String[] arg) {
字符串输入值=“计算机”;
byte[] strByteArray = inputvalue.getBytes();
byte[] result = new byte[strByteArray.length];
// 在结果 byte[] 中倒序存储结果
for (int i = 0; i < strByteArray.length; i++)
结果 [i] = strByteArray [strByteArray.length – i – 1];
System.out.println( "逆运算后的字符串为:" +new String(result));
}
输出:
逆向操作后的字符串为:retupmoC
7) 使用堆栈
此方法涉及以下步骤,使用 Stack 数据结构反转 Java 字符串。
- 创建一个没有字符的堆栈。
- 使用 String.toCharArray() 方法将输入字符串转换为字符数组。 随后,它将每个字符添加到堆栈中。
三. 从堆栈中检索字符直到它为空,然后再次将字符分配到字符数组中。 所以,现在字符将以相反的顺序到达。
- 使用 String.copyValueOf(char[]) 将字符数组转换为字符串,最后返回新字符串。
其Java程序如下:
导入 java.util.Stack;
主类
{
公共静态字符串反向(字符串 str)
{
// 检查字符串是否为空或 null
如果(str == null || str.equals(“”)){
返回海峡;
}
// 生成一个空的字符栈
堆栈<字符> 堆栈 = 新堆栈<字符>();
// 将输入字符串的所有字符加入栈中
char[] ch = str.toCharArray();
对于 (int i = 0; i < str.length(); i++) {
stack.push(ch[i]);
}
// 从索引 0 开始
诠释米= 0;
// 从栈中取出字符,直到栈为空
while (!stack.isEmpty())
{
// 将每个检索到的字符分配回字符数组
ch[m++] = stack.pop();
}
// 将字符数组转换为字符串并返回
返回 String.copyValueOf(ch);
}
public static void main(String[] args)
{
String str = “科技创新”;
海峡=反向(海峡);
System.out.println(“输入字符串的反序:” + str);
}
}
输出
输入字符串的反转:ygolonhceT noitavonnI
使用 UpGrad 开始您的 Java 之旅
如果你想学习 Java,你必须了解核心 Java 概念。 为此,您可以攻读 UpGrad 的计算机科学理学硕士学位。 它涵盖的主题包括 Java 核心、OOPS 概念、Java 中的对象和类、Java 中的方法、Java 虚拟机、多态性、继承、抽象、封装等。您将获得行业专家指导。 这些专家进行涵盖课程和高级主题的交互式现场会议。
在 Java 中反转字符串的最简单方法是什么?
在 Java 中反转 String 的最简单方法是使用 StringBuffer 类。 它支持一种称为 reverse() 的方法,该方法反转现有 StringBuffer 对象的内容并返回输出 StringBuffer 对象。
Java中的递归方法是什么?
调用自身的方法在 Java 中称为递归方法。 相应的过程称为递归。
String在Java中的应用有哪些?
在 Java 中,字符串可用于检测代码中的抄袭。 它们可用于编码和解码,以实现从发送方到接收方的安全数据传输。 字符串应用程序帮助您从匿名数据源中检索信息。 此外,字符串及其算法应用程序为您提供改进的过滤器来解决近似后缀-前缀重叠问题。