Java反向字符

Java反向字符串简介

字符串是一个字符序列,是Java中的一个对象。在Java中,可以对String对象执行几种操作。常用的操作之一是字符串反转。反向的字符串称为反向字符串。例如,“ HAPPY”字符串可以反转为“ YPPAH”。同样,当反转时,“ LUCKY”字符串可以写为“ YKCUL”。

Java中反向字符串背后的逻辑

有几种方式可以反转字符串。对于每种方法,将使用单独的功能和循环。即使方法不同,字符串反转背后的基本过程也几乎类似,下面将对此进行介绍:

 
  • 使用代码或使用用户输入来输入字符串。
  • 从最后一个位置开始取字符串的字符,并将其存储在任何变量中。
  • 显示最终输出。

如何使用各种方法反转Java中的字符串?

为了执行字符串反转,有几种方法。

  • 使用StringBuffer或StringBuilder
  • 使用charAt()方法
  • 使用ArrayList对象
  • 使用反向迭代
  • 使用递归

让我们详细研究它们中的每一个。

1.使用StringBuffer或StringBuilder反转字符串的程序

代码:

//Java program to Reverse a String using StringBuffer
//class
public class ReverseStringExample {
//main method
	public static void main(String[] args) {
//string
		String str1 = "Annamu";
//reversed string will be stored in rev variable
		String rev = new StringBuffer(str1).reverse().toString();
//print string before reverse
		System.out.println("\nString before reversal : " + str1);
//print string after reverse
		System.out.println("String after reversal : " + rev);
	}
}

输出:

Java 1中的反向字符串

在这里,将使用StringBuffer缓冲作为输入提供的字符串,并使用reverse()方法将其反转。缓冲区反转后,将在toString()方法的帮助下将其转换为字符串。

同样,也可以使用StringBuilder代替StringBuffer,下面的程序对此进行了说明。

 

Java程序使用StringBuilder反转字符串。

代码:

//class
public class ReverseStringExample {
//main method
	public static void main(String[] args) {
//string
		String str1 = "Annamu";
//reversed string will be stored in rev variable
		String rev = new StringBuilder(str1).reverse().toString();
//print string before reverse
		System.out.println("\nString before reversal : " + str1);
//print string after reverse
		System.out.println("String after reversal : " + rev);
	}
}

输出:

Java 2中的反向字符串

同样在这里,即使使用StringBuilder,也可以看到字符串是反向的。

2.程序使用charAt()方法反转字符串

代码:

//class
public class ReverseStringExample {
//main method
	public static void main(String[] args) {
//string
		String str1 = "Java Programming";
//reversed string will be stored in reverseS variable
		String reverseS = "";
//length of string will be stored in len
		int len = str1.length();
		for (int i = len - 1; i >= 0; i--)
			reverseS = reverseS + str1.charAt(i);
//print string before reverse
		System.out.println("\nString before reversal : " + str1);
//print string after reverse
		System.out.println("String after reversal : " + reverseS);
	}
}

输出:

反向字符串使用chartat方法

在此程序中,输入字符串的字符将在for循环的帮助下从最后一个位置开始存储在reverseS变量中。一旦存储了所有字符,就会显示反向的字符串。

3.程序使用ArrayList对象反转字符串

代码:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.ListIterator;

//class
public class ReverseStringExample {
//main method
	public static void main(String[] args) {
//string
		String str1 = "Programming Language";
//conversion of input string to character array
		char ch[] = str1.toCharArray();
//add character array to object of the ArrayList
		List<Character> obj = new ArrayList<>();
		for (char c : ch)
			obj.add(c);
//pass the object of arraylist to collections
		Collections.reverse(obj);
//create objecct of listiterator to iterate on list
		ListIterator<Character> objli = obj.listIterator();
//print string before reversal
		System.out.println("\nString before reversal : " + str1);
		System.out.println("\nString after reversal : ");
		while (objli.hasNext())
			System.out.print(objli.next());
	}
}

输出:

使用arraylist对象

在此程序中,输入字符串的字符将存储在ArrayList对象中。借助集合中的reverse()方法,它被反转了。反向后,迭代器将遍历列表并打印反向的字符串。

4.程序使用反向迭代来反向字符串

代码:

//class
public class ReverseStringExample {
//main method
	public static void main(String[] args) {
//string
		String str1 = "Hello World";
//conversion of input string to character array
		char ch[] = str1.toCharArray();
//reversed string will be stored in reverseS variable
		String reverseS = "";
//For loop for reversal of a string
		for (int i = ch.length - 1; i >= 0; i--) {
			reverseS += ch[i];
		}
//print string before reversal
		System.out.println("\nString before reversal : " + str1);
		System.out.println("\nString after reversal : " + reverseS);
	}
}

输出:

使用逆向迭代

同样在此程序中,借助于for循环,输入字符串的字符将从最后一个位置开始存储在reverseS变量中。一旦存储了所有字符,就会显示反向的字符串。

5.使用递归反转字符串的程序

代码:

//class
public class ReverseStringExample {
//function reversal
	String rev(String str1) {
//if length of the string is zero, return null
		if (str1.length() == 0) {
			return " ";
		}
//else return the character obtained on following method
		return str1.charAt(str1.length() - 1) + rev(str1.substring(0, str1.length() - 1));
	}

	public static void main(String[] args) {
// create object of class
		ReverseStringExample r = new ReverseStringExample();
//input string
		String str1 = "Java Program";
//print string before reversal
		System.out.println("\nString before reversal : " + str1);
//print string after reversal
		System.out.println("\nString after reversal : " + r.rev(str1));
	}
}

输出:

使用递归

在此程序中,创建了一个递归函数,该函数检查字符串的长度并根据该长度对其进行反转。

结论

字符串反转是在不同情况下应用的最常见的字符串操作之一。在本文中,涵盖了字符串反转的算法,方法,实现等多个方面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值