我們知道,在Java中將字符串反轉有很多種方法,但是最常用的有哪幾種呢?哪種方法的速度最快呢?今天筆者在這總結了四種字符串反轉的方法,希望能夠對大家有所幫助。
字符串反轉方法
(1)通過StringBuilder的reverse()方法,號稱速度最快:
public class ReverseStringBuilder {
public static void main(String[] args) {
// TODO Auto-generated method stub
String d="acfbnm";//字符串自己定義
ReverseStringBuilder(d);//調用ReverseStringBuilder()方法
}
public static String ReverseStringBuilder(String s) {
//具體實現方法
StringBuilder sb = new StringBuilder(s);
String AfterReverse=sb.reverse().toString();
System.out.println(AfterReverse);
return AfterReverse;
}
}
結果:
(2)通過遞歸實現,據說比較高大上:
public class ReverseRecursive {
public static void main(String[] args) {
String f="123456";
System.out.println(ReverseRecursive(f));
}
public static String ReverseRecursive(String s) {
int length =s.length();
if(length<=1)
return s;
String left=s.substring(0, length/2);
String right=s.substring(length/2,length);
//分爲兩部分
String AfterReverse = ReverseRecursive(right)+
ReverseRecursive(left);
//對兩部分分別遞歸調用函數
return AfterReverse;
}
}
結果:
(3)通過charAt()方法:
/*
*
* 這種方法是通過charAt()方法獲得每一個char字符,i=0時獲得第一個字符a,然後
* 賦給reverse,此時這裏面僅包含字符a;當i=1時,然後獲得第二個字符b,然後加上reverse
* 的值在賦值給reverse,此時reverse=“ba”*/
public class CharAtreverse {
public static void main(String[] args) {
String f="abcdefg";
CharAtreverse(f);
}
public static String CharAtreverse(String s) {
int length = s.length();
String reverse = "";
for(int i=0;i<length;i++)
reverse = s.charAt(i)+reverse;
System.out.println(reverse);
return reverse;
}
}
結果:
(4)通過String的toCharArray()方法,即字符數組:
//通過String的toCharArray()方法可以獲得字符串中的每一個字符串並且
//轉化爲字符數組,然後使用一個空的字符串從後向前一個個
//的拼接爲新的字符串。
public class ReverseCharArray {
public static void main(String[] args) {
// TODO Auto-generated method stub
String f="abcdrf";
ReverseCharArray(f);
}
public static String ReverseCharArray(String s) {
char[] array=s.toCharArray();
String reverse = "";
for(int i=array.length-1;i>=0;i--) {
reverse+=array[i];
}
System.out.println(reverse);
return reverse;
}
}
結果:
以上內容是筆者整理的四種字符串反轉方式,希望對大家有所幫助!
謝謝大家!我們一起成長!