在Java中反转字符串的10种方法[Snippets]
在本文中,我们将讨论如何以10种不同的方式在Java中反转String。在本文中,我们将编写10个Java程序来反转String。例如,从“javaguides”到“sediugavaj”的反向字符串。
用Java反转字符串的10种方法1.使用+(String Concatenation)运算符包网。javaguides。corejava。串;
/**
*
*@authorRameshFadatare
*
*/
publicclassReverseWithStringConcat{
publicstaticvoidmain(String[]args){
ReverseWithStringConcatconcat=newReverseWithStringConcat();
concat。reverseWithStringConcat(“javaguides”);
}
privateStringreverseWithStringConcat(Stringinput){
Stringoutput=newString();
对于(诠释我=(输入。长度()-1);我>=0;我-){
输出+=(输入。的charAt(我));
}
显示(输入,输出);
返回输出;
}
privatevoiddisplay(Stringinput,Stringoutput){
系统。出。println(“inputstring::”+input);
系统。出。println(“outputstring::”+output);
}
}
产量
输入字符串::javaguides
输出字符串::sediugavaj
包网。javaguides。corejava。串;
/**
*
*@authorRameshFadatare
*
*/
publicclassReverseWithStringBuilderBuiltinMethod{
publicstaticvoidmain(String[]args){
ReverseWithStringBuilderBuiltinMethodbuiltinMethod=newReverseWithStringBuilderBuiltinMethod();
builtinMethod。reverseWithStringBuilderBuiltinMethod(“javaguides”);
}
publicStringreverseWithStringBuilderBuiltinMethod(Stringstring){
finalStringBuilderbuilder=newStringBuilder(string);
显示(字符串,助洗剂。反向()。的toString());
返回建设者。反转()。toString();
}
privatevoiddisplay(Stringinput,Stringoutput){
系统。出。println(“inputstring::”+input);
系统。出。println(“outputstring::”+output);
}
}
产量
输入字符串::javaguides
输出字符串::sediugavaj
包网。javaguides。corejava。串;
/**
*
*@authorRameshFadatare
*
*/
publicclassReverseWithStringChatAt{
publicstaticvoidmain(String[]args){
ReverseWithStringChatAtreverseWithStringBuilder=newReverseWithStringChatAt();
reverseWithStringBuilder。reverseWithStringBuilder(“javaguides”);
}
publicStringreverseWithStringChatAt(Stringstring){
finalStringBuilderbuilder=newStringBuilder();
对于(诠释我=(字符串。长度()-1);我>=0;我-){
建设者。追加(字符串。的charAt(我));
}
显示(字符串,助洗剂。的toString());
返回建设者。toString();
}
privatevoiddisplay(Stringinput,Stringoutput){
系统。出。println(“inputstring::”+input);
系统。出。println(“outputstring::”+output);
}
}
产量
输入字符串::javaguides
输出字符串::sediugavaj
包网。javaguides。corejava。串;
/**
*
*@authorRameshFadatare
*
*/
公共类ReverseStringWithSwaps{
publicstaticvoidmain(String[]args){
ReverseStringWithSwapsstringWithSwaps=newReverseStringWithSwaps();
stringWithSwaps。reverseWithSwaps(“javaguides”);
}
publicStringreverseWithSwaps(Stringstring){
finalchar[]array=string。toCharArray();
finalintlength=array。长度-1;
finalinthalf=(int)数学。地板(阵列。长度/2);
charc;
for(inti=length;i>=half;i-){
c=array[length-i];
array[length-i]=array[i];
array[i]=c;
}
显示(字符串,字符串。的valueOf(阵列));
returnString。valueOf(array);
}
privatevoiddisplay(Stringinput,Stringoutput){
系统。出。println(“inputstring::”+input);
系统。出。println(“outputstring::”+output);
}
}
产量
输入字符串::javaguides
输出字符串::sediugavaj
包网。javaguides。corejava。串;
/**
*
*@authorRameshFadatare
*
*/
publicclassReverseStringWithXOR{
publicstaticvoidmain(String[]args){
ReverseStringWithXORstringWithXOR=newReverseStringWithXOR();
stringWithXOR。reverseWithXOR(“javaguides”);
}
publicStringreverseWithXOR(Stringstring){
finalchar[]array=string。toCharArray();
finalintlength=array。长度;
finalinthalf=(int)数学。地板(阵列。长度/2);
for(inti=0;i<half;i++){
array[i]^=array[length-i-1];
array[length-i-1]^=array[i];
array[i]^=array[length-i-1];
}
显示(字符串,字符串。的valueOf(阵列));
returnString。valueOf(array);
}
privatevoiddisplay(Stringinput,Stringoutput){
系统。出。println(“inputstring::”+input);
系统。出。println(“outputstring::”+output);
}
}
产量
输入字符串::javaguides
输出字符串::sediugavaj
包网。javaguides。corejava。串;
导入java。util。堆栈;
/**
*
*@authorRameshFadatare
*
*/
publicclassReverseStringUsingStack{
//使用堆栈和字符数组在Java中反转字符串的函数
publicstaticStringreverse(Stringstr){
//基本情况:如果string为null或为空
如果(STR==空||海峡。等号(“”))
返回str;
//创建一个空的字符堆栈
Stack<Character>stack=newStack<Character>();
//将给定字符串的每个字符都压入堆栈
char[]ch=str。toCharArray();
对于(诠释我=0;我<STR。长度();我++)
堆栈。推(ch[i]);
//从索引0开始
intk=0;
//从堆栈中弹出字符,直到它为空
而(!栈。的isEmpty()){
//将每个弹出的字符分配回字符数组
ch[k++]=堆栈。pop();
}
//将字符数组转换为字符串并返回它
returnString。copyValueOf(ch);
}
publicstaticvoidmain(String[]args){
Stringstr=“javaguides”;
str=reverse(str);//字符串是不可变的
系统。出。println(“给定字符串的反转是:”+str);
}
}
产量
反向的在给定的字符串是:sediugavaj
包网。javaguides。corejava。串;
导入java。util。ArrayList;
导入java。util。收藏;
导入java。util。清单;
/**
*
*@authorRameshFadatare
*
*/
publicclassReverseStringUsingCollectionsReverseMethod{
//使用Collections.reverse()在Java中反转字符串的函数
publicstaticStringreverse(Stringstr){
//基本情况:如果string为null或为空
如果(STR==空||海峡。等号(“”))
返回str;
//创建一个空字符列表
List<Character>list=newArrayList<Character>();
//将给定字符串的每个字符都推入其中
对于(炭Ç:STR。toCharArray())
清单。添加(c);
//使用java.util.Collections反向列表reverse()
收藏。反向(列表);
//使用StringBuilder将ArrayList转换为String并返回它
StringBuilder的建设者=新的StringBuilder(名单。大小());
for(字符c:列表)
建设者。追加(c);
返回建设者。toString();
}
publicstaticvoidmain(String[]args){
Stringstr=“JavaGuides”;
//String是不可变的
str=reverse(str);
系统。出。println(“给定字符串的反转是:”+str);
}
}
产量
反向的在给定的字符串是:sediuGavaJ
包网。javaguides。corejava。串;
/**
*
*@authorRameshFadatare
*
*/
publicclassReverseStringUsingByteArray{
//使用字节数组在Java中反转字符串的函数
publicstaticStringreverse(Stringstr){
//如果string为null或为空则返回
如果(STR==空||海峡。等号(“”))
返回str;
//将字符串转换为字节
byte[]bytes=str。getBytes();
//从给定字符串的两个端点l和h开始
//并在循环的每次迭代中递增l和递减h
//直到两个终点相交(l>=h)
对(INT升=0,ħ=STR。长度()-1;升<ħ;升++,ħ-){
//在l和h处交换值
bytetemp=bytes[l];
bytes[l]=bytes[h];
bytes[h]=temp;
}
//将字节数组转换回字符串
returnnewString(bytes);
}
publicstaticvoidmain(String[]args){
Stringstr=“JavaGuides”;
//String是不可变的
str=reverse(str);
系统。出。println(“给定字符串的反转是:”+str);
}
}
产量
反向的在给定的字符串是:sediuGavaJ
包网。javaguides。corejava。串;
/**
*
*@authorRameshFadatare
*
*/
publicclassUsingSubStringFunction{
//使用递归在Java中反转字符串的函数
privatestaticStringreverse(Stringstr){
//基本情况:如果string为null或为空
如果(STR==空||海峡。等号(“”))
返回str;
//最后一个字符+递归剩下的字符串
返回str。的charAt(STR。长度()-1)+反向(STR。子串(0,STR。长度()-1));
}
publicstaticvoidmain(String[]args){
Stringstr=“javaguides”;
//字符串是不可变的
str=reverse(str);
系统。出。println(“给定字符串的反转是:”+str);
}
}
产量
反向的在给定的字符串是:sediugavaj
包网。javaguides。corejava。串;
/**
*
*@authorRameshFadatare
*
*/
publicclassUsingRecursion{
staticinti=0;
//使用静态变量在Java中反转字符串的递归函数
privatestaticvoidreverse(char[]str,intk){
//如果我们到达了字符串的末尾
如果(ķ==STR。长度)
回归;
//递归下一个角色
反转(str,k+1);
if(i<=k){
chartemp=str[k];
str[k]=str[i];
str[i++]=temp;
}
}
publicstaticStringreverse(Stringstr){
//基本情况:如果string为null或为空
如果(STR==空||海峡。等号(“”))
返回str;
//将字符串转换为字符数组
char[]A=str。toCharArray();
//反向字符数组
反向(A,0);
//将字符数组转换为字符串
returnString。copyValueOf(A);
}
publicstaticvoidmain(String[]args){
Stringstr=“JavaGuides”;
//字符串是不可变的
str=reverse(str);
系统。出。println(“给定字符串的反转是:”+str);
}
}
产量
反向的在给定的字符串是:sediuGavaJ
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。