在本文中,我们将讨论如何以10种不同的方式在Java中反转String。在本文中,我们将编写10个Java程序来反转String。例如,从“javaguides”到“sediugavaj”的反向字符串。
包 网。javaguides。corejava。串 ;
/ **
*
* @author Ramesh Fadatare
*
* /
public class ReverseWithStringConcat {
public static void main(String [] args){
ReverseWithStringConcat concat = new ReverseWithStringConcat();
concat。reverseWithStringConcat(“javaguides”);
}
private String reverseWithStringConcat(String input){
String output = new String();
对于(诠释 我 =(输入。长度()- 1); 我 > = 0 ; 我-){
输出 + =(输入。的charAt(我));
}
显示(输入,输出);
返回 输出 ;
}
private void display(String input,String output){
系统。出。println(“input string ::” + input);
系统。出。println(“output string ::” + output);
}
}
产量
输入 字符串 :: javaguides
输出 字符串 :: sediugavaj
包 网。javaguides。corejava。串 ;
/ **
*
* @author Ramesh Fadatare
*
* /
public class ReverseWithStringBuilderBuiltinMethod {
public static void main(String [] args){
ReverseWithStringBuilderBuiltinMethod builtinMethod = new ReverseWithStringBuilderBuiltinMethod();
builtinMethod。reverseWithStringBuilderBuiltinMethod(“javaguides”);
}
public String reverseWithStringBuilderBuiltinMethod(String string){
final StringBuilder builder = new StringBuilder(string);
显示(字符串,助洗剂。反向()。的toString());
返回 建设者。反转()。toString();
}
private void display(String input,String output){
系统。出。println(“input string ::” + input);
系统。出。println(“output string ::” + output);
}
}
产量
输入 字符串 :: javaguides
输出 字符串 :: sediugavaj
包 网。javaguides。corejava。串 ;
/ **
*
* @author Ramesh Fadatare
*
* /
public class ReverseWithStringChatAt {
public static void main(String [] args){
ReverseWithStringChatAt reverseWithStringBuilder = new ReverseWithStringChatAt();
reverseWithStringBuilder。reverseWithStringBuilder(“javaguides”);
}
public String reverseWithStringChatAt(String string){
final StringBuilder builder = new StringBuilder();
对于(诠释 我 =(字符串。长度()- 1); 我 > = 0 ; 我-){
建设者。追加(字符串。的charAt(我));
}
显示(字符串,助洗剂。的toString());
返回 建设者。toString();
}
private void display(String input,String output){
系统。出。println(“input string ::” + input);
系统。出。println(“output string ::” + output);
}
}
产量
输入 字符串 :: javaguides
输出 字符串 :: sediugavaj
包 网。javaguides。corejava。串 ;
/ **
*
* @author Ramesh Fadatare
*
* /
公共 类 ReverseStringWithSwaps {
public static void main(String [] args){
ReverseStringWithSwaps stringWithSwaps = new ReverseStringWithSwaps();
stringWithSwaps。reverseWithSwaps(“javaguides”);
}
public String reverseWithSwaps(String string){
final char [] array = string。toCharArray();
final int length = array。长度 - 1 ;
final int half =(int)数学。地板(阵列。长度 / 2);
char c ;
for(int i = length ; i > = half ; i -){
c = array [ length - i ];
array [ length - i ] = array [ i ];
array [ i ] = c ;
}
显示(字符串,字符串。的valueOf(阵列));
return String。valueOf(array);
}
private void display(String input,String output){
系统。出。println(“input string ::” + input);
系统。出。println(“output string ::” + output);
}
}
产量
输入 字符串 :: javaguides
输出 字符串 :: sediugavaj
包 网。javaguides。corejava。串 ;
/ **
*
* @author Ramesh Fadatare
*
* /
public class ReverseStringWithXOR {
public static void main(String [] args){
ReverseStringWithXOR stringWithXOR = new ReverseStringWithXOR();
stringWithXOR。reverseWithXOR(“javaguides”);
}
public String reverseWithXOR(String string){
final char [] array = string。toCharArray();
final int length = array。长度 ;
final int half =(int)数学。地板(阵列。长度 / 2);
for(int i = 0 ; i < half ; i ++){
array [ i ] ^ = array [ length - i - 1 ];
array [ length - i - 1 ] ^ = array [ i ];
array [ i ] ^ = array [ length - i - 1 ];
}
显示(字符串,字符串。的valueOf(阵列));
return String。valueOf(array);
}
private void display(String input,String output){
系统。出。println(“input string ::” + input);
系统。出。println(“output string ::” + output);
}
}
产量
输入 字符串 :: javaguides
输出 字符串 :: sediugavaj
包 网。javaguides。corejava。串 ;
导入 java。util。堆栈 ;
/ **
*
* @author Ramesh Fadatare
*
* /
public class ReverseStringUsingStack {
//使用堆栈和字符数组在Java中反转字符串的函数
public static String reverse(String str){
//基本情况:如果string为null或为空
如果(STR == 空 || 海峡。等号(“” ))
返回 str ;
//创建一个空的字符堆栈
Stack < Character > stack = new Stack < Character >();
//将给定字符串的每个字符都压入堆栈
char [] ch = str。toCharArray();
对于(诠释 我 = 0 ; 我 < STR。长度(); 我++)
堆栈。推(ch [ i ]);
//从索引0开始
int k = 0 ;
//从堆栈中弹出字符,直到它为空
而(!栈。的isEmpty()){
//将每个弹出的字符分配回字符数组
ch [ k ++ ] = 堆栈。pop();
}
//将字符数组转换为字符串并返回它
return String。copyValueOf(ch);
}
public static void main(String [] args){
String str = “javaguides” ;
str = reverse(str); //字符串是不可变的
系统。出。println(“给定字符串的反转是:” + str);
}
}
产量
反向 的 在 给定的 字符串 是:sediugavaj
包 网。javaguides。corejava。串 ;
导入 java。util。ArrayList ;
导入 java。util。收藏 ;
导入 java。util。清单 ;
/ **
*
* @author Ramesh Fadatare
*
* /
public class ReverseStringUsingCollectionsReverseMethod {
//使用Collections.reverse()在Java中反转字符串的函数
public static String reverse(String str){
//基本情况:如果string为null或为空
如果(STR == 空 || 海峡。等号(“” ))
返回 str ;
//创建一个空字符列表
List < Character > list = new ArrayList < Character >();
//将给定字符串的每个字符都推入其中
对于(炭 Ç:STR。toCharArray())
清单。添加(c);
//使用java.util.Collections反向列表reverse()
收藏。反向(列表);
//使用StringBuilder将ArrayList转换为String并返回它
StringBuilder的 建设者 = 新 的StringBuilder(名单。大小());
for(字符 c:列表)
建设者。追加(c);
返回 建设者。toString();
}
public static void main(String [] args){
String str = “Java Guides” ;
// String是不可变的
str = reverse(str);
系统。出。println(“给定字符串的反转是:” + str);
}
}
产量
反向 的 在 给定的 字符串 是:sediuG avaJ
包 网。javaguides。corejava。串 ;
/ **
*
* @author Ramesh Fadatare
*
* /
public class ReverseStringUsingByteArray {
//使用字节数组在Java中反转字符串的函数
public static String reverse(String str){
//如果string为null或为空则返回
如果(STR == 空 || 海峡。等号(“” ))
返回 str ;
//将字符串转换为字节
byte [] bytes = str。getBytes();
//从给定字符串的两个端点l和h开始
//并在循环的每次迭代中递增l和递减h
//直到两个终点相交(l> = h)
对(INT 升 = 0,ħ = STR。长度()- 1 ; 升 < ħ ; 升++,ħ -){
//在l和h处交换值
byte temp = bytes [ l ];
bytes [ l ] = bytes [ h ];
bytes [ h ] = temp ;
}
//将字节数组转换回字符串
return new String(bytes);
}
public static void main(String [] args){
String str = “Java Guides” ;
// String是不可变的
str = reverse(str);
系统。出。println(“给定字符串的反转是:” + str);
}
}
产量
反向 的 在 给定的 字符串 是:sediuG avaJ
包 网。javaguides。corejava。串 ;
/ **
*
* @author Ramesh Fadatare
*
* /
public class UsingSubStringFunction {
//使用递归在Java中反转字符串的函数
private static String reverse(String str){
//基本情况:如果string为null或为空
如果(STR == 空 || 海峡。等号(“” ))
返回 str ;
//最后一个字符+递归剩下的字符串
返回 str。的charAt(STR。长度()- 1)+ 反向(STR。子串(0,STR。长度()- 1));
}
public static void main(String [] args){
String str = “javaguides” ;
//字符串是不可变的
str = reverse(str);
系统。出。println(“给定字符串的反转是:” + str);
}
}
产量
反向 的 在 给定的 字符串 是:sediugavaj
包 网。javaguides。corejava。串 ;
/ **
*
* @author Ramesh Fadatare
*
* /
public class UsingRecursion {
static int i = 0 ;
//使用静态变量在Java中反转字符串的递归函数
private static void reverse(char [] str,int k){
//如果我们到达了字符串的末尾
如果(ķ == STR。长度)
回归 ;
//递归下一个角色
反转(str,k + 1);
if(i <= k){
char temp = str [ k ];
str [ k ] = str [ i ];
str [ i ++ ] = temp ;
}
}
public static String reverse(String str){
//基本情况:如果string为null或为空
如果(STR == 空 || 海峡。等号(“” ))
返回 str ;
//将字符串转换为字符数组
char [] A = str。toCharArray();
//反向字符数组
反向(A,0);
//将字符数组转换为字符串
return String。copyValueOf(A);
}
public static void main(String [] args){
String str = “Java Guides” ;
//字符串是不可变的
str = reverse(str);
系统。出。println(“给定字符串的反转是:” + str);
}
}
产量
反向 的 在 给定的 字符串 是:sediuG avaJ