Java面試題之字符串反轉常見的幾種方式?

我們知道,在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;
	}
}

結果:

 

以上內容是筆者整理的四種字符串反轉方式,希望對大家有所幫助!

謝謝大家!我們一起成長!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章