Java反转字符串的10种方法
在这篇文章中,我们会讨论10种用Java反转字符串的方法,通过10个Java程序反转字符串。例如,把字符串“javaguides”反转为“sediugavaj”。
1.使用+(String连接)操作符
packagenet.javaguides.corejava.string; /** * *@authorRameshFadatare * */ publicclassReverseWithStringConcat{ publicstaticvoidmain(String[]args){ ReverseWithStringConcatconcat=newReverseWithStringConcat(); concat.reverseWithStringConcat("javaguides"); } privateStringreverseWithStringConcat(Stringinput){ Stringoutput=newString(); for(inti=(input.length()-1);i>=0;i--){ output+=(input.charAt(i)); } display(input,output); returnoutput; } privatevoiddisplay(Stringinput,Stringoutput){ System.out.println("inputstring::"+input); System.out.println("outputstring::"+output); } }
输出:
inputstring::javaguides outputstring::sediugavaj
2.使用StringBuilder
packagenet.javaguides.corejava.string; /** * *@authorRameshFadatare * */ publicclassReverseWithStringBuilderBuiltinMethod{ publicstaticvoidmain(String[]args){ ReverseWithStringBuilderBuiltinMethodbuiltinMethod=newReverseWithStringBuilderBuiltinMethod(); builtinMethod.reverseWithStringBuilderBuiltinMethod("javaguides"); } publicStringreverseWithStringBuilderBuiltinMethod(Stringstring){ finalStringBuilderbuilder=newStringBuilder(string); display(string,builder.reverse().toString()); returnbuilder.reverse().toString(); } privatevoiddisplay(Stringinput,Stringoutput){ System.out.println("inputstring::"+input); System.out.println("outputstring::"+output); } }
输出:
inputstring::javaguides outputstring::sediugavaj
3.使用StringcharAt方法
packagenet.javaguides.corejava.string; /** * *@authorRameshFadatare * */ publicclassReverseWithStringChatAt{ publicstaticvoidmain(String[]args){ ReverseWithStringChatAtreverseWithStringBuilder=newReverseWithStringChatAt(); reverseWithStringBuilder.reverseWithStringBuilder("javaguides"); } publicStringreverseWithStringChatAt(Stringstring){ finalStringBuilderbuilder=newStringBuilder(); for(inti=(string.length()-1);i>=0;i--){ builder.append(string.charAt(i)); } display(string,builder.toString()); returnbuilder.toString(); } privatevoiddisplay(Stringinput,Stringoutput){ System.out.println("inputstring::"+input); System.out.println("outputstring::"+output); } }
输出:
inputstring::javaguides outputstring::sediugavaj
4.通过交换字符反转
packagenet.javaguides.corejava.string; /** * *@authorRameshFadatare * */ publicclassReverseStringWithSwaps{ publicstaticvoidmain(String[]args){ ReverseStringWithSwapsstringWithSwaps=newReverseStringWithSwaps(); stringWithSwaps.reverseWithSwaps("javaguides"); } publicStringreverseWithSwaps(Stringstring){ finalchar[]array=string.toCharArray(); finalintlength=array.length-1; finalinthalf=(int)Math.floor(array.length/2); charc; for(inti=length;i>=half;i--){ c=array[length-i]; array[length-i]=array[i]; array[i]=c; } display(string,String.valueOf(array)); returnString.valueOf(array); } privatevoiddisplay(Stringinput,Stringoutput){ System.out.println("inputstring::"+input); System.out.println("outputstring::"+output); } }
输出:
inputstring::javaguides outputstring::sediugavaj
5.使用XOR(^)操作符反转
packagenet.javaguides.corejava.string; /** * *@authorRameshFadatare * */ publicclassReverseStringWithXOR{ publicstaticvoidmain(String[]args){ ReverseStringWithXORstringWithXOR=newReverseStringWithXOR(); stringWithXOR.reverseWithXOR("javaguides"); } publicStringreverseWithXOR(Stringstring){ finalchar[]array=string.toCharArray(); finalintlength=array.length; finalinthalf=(int)Math.floor(array.length/2); for(inti=0;i输出:
inputstring::javaguides outputstring::sediugavaj6.使用堆栈
packagenet.javaguides.corejava.string; importjava.util.Stack; /** * *@authorRameshFadatare * */ publicclassReverseStringUsingStack{ //FunctiontoreverseastringinJavausingastackandcharacterarray publicstaticStringreverse(Stringstr){ //basecase:ifstringisnullorempty if(str==null||str.equals("")) returnstr; //createanemptystackofcharacters Stackstack=newStack (); //pusheverycharacterofthegivenstringintothestack char[]ch=str.toCharArray(); for(inti=0;i 输出:
Reverseofthegivenstringis:sediugavaj7.使用Collectionsreverse()方法
packagenet.javaguides.corejava.string; importjava.util.ArrayList; importjava.util.Collections; importjava.util.List; /** * *@authorRameshFadatare * */ publicclassReverseStringUsingCollectionsReverseMethod{ //FunctiontoreverseastringinJavausingCollections.reverse() publicstaticStringreverse(Stringstr){ //basecase:ifstringisnullorempty if(str==null||str.equals("")) returnstr; //createanemptylistofcharacters Listlist=newArrayList (); //pusheverycharacterofthegivenstringintoit for(charc:str.toCharArray()) list.add(c); //reverselistusingjava.util.Collectionsreverse() Collections.reverse(list); //covertArrayListintoStringusingStringBuilderandreturnit StringBuilderbuilder=newStringBuilder(list.size()); for(Characterc:list) builder.append(c); returnbuilder.toString(); } publicstaticvoidmain(String[]args){ Stringstr="JavaGuides"; //Stringisimmutable str=reverse(str); System.out.println("Reverseofthegivenstringis:"+str); } } 输出:
Reverseofthegivenstringis:sediuGavaJ8.使用Byte数组
packagenet.javaguides.corejava.string; /** * *@authorRameshFadatare * */ publicclassReverseStringUsingByteArray{ //FunctiontoreverseastringinJavausingbytearray publicstaticStringreverse(Stringstr){ //returnifstringisnullorempty if(str==null||str.equals("")) returnstr; //convertstringintobytes byte[]bytes=str.getBytes(); //startfromthetwoendpointslandhofthegivenstring //andincrementl&decrementhateachiterationoftheloop //untiltwoend-pointsintersect(l>=h) for(intl=0,h=str.length()-1;l输出:
Reverseofthegivenstringis:sediuGavaJ9.使用substring()方法
packagenet.javaguides.corejava.string; /** * *@authorRameshFadatare * */ publicclassUsingSubStringFunction{ //FunctiontoreverseastringinJavausingrecursion privatestaticStringreverse(Stringstr){ //basecase:ifstringisnullorempty if(str==null||str.equals("")) returnstr; //lastcharacter+recurseforremainingstring returnstr.charAt(str.length()-1)+reverse(str.substring(0,str.length()-1)); } publicstaticvoidmain(String[]args){ Stringstr="javaguides"; //stringisimmutable str=reverse(str); System.out.println("Reverseofthegivenstringis:"+str); } }输出:
Reverseofthegivenstringis:sediugavaj10.使用递归
packagenet.javaguides.corejava.string; /** * *@authorRameshFadatare * */ publicclassUsingRecursion{ staticinti=0; //RecursivefunctiontoreverseastringinJavausingstaticvariable privatestaticvoidreverse(char[]str,intk){ //ifwehavereachedtheendofthestring if(k==str.length) return; //recursefornextcharacter reverse(str,k+1); if(i<=k){ chartemp=str[k]; str[k]=str[i]; str[i++]=temp; } } publicstaticStringreverse(Stringstr){ //basecase:ifstringisnullorempty if(str==null||str.equals("")) returnstr; //convertstringintoacharacterarray char[]A=str.toCharArray(); //reversecharacterarray reverse(A,0); //convertcharacterarrayintothestring returnString.copyValueOf(A); } publicstaticvoidmain(String[]args){ Stringstr="JavaGuides"; //stringisimmutable str=reverse(str); System.out.println("Reverseofthegivenstringis:"+str); } }输出:
Reverseofthegivenstringis:sediuGavaJ以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。