編寫將給定字串倒序輸出的函式[Java筆試題]

Hoking發表於2016-05-25

面試的過程中經常會出現這樣一個問題:寫一個函式,將給定的字串倒敘輸出。

以下是StringReverseOpt定義靜態方法:

<span style="font-size:18px;">public class StringReverseOpt {

	
	/**
	 * 方式一:使用String類的toCharArray(),再倒序輸出陣列。
	 * @param string
	 * @return
	 */
	public static String reverseString01(String string){
		String resultString = "";
		char[] charArray = string.toCharArray();//獲得字元陣列
		for(int i = charArray.length-1;i>=0;i--){
			resultString += charArray[i];
		}
		return resultString;
	}
	
	/**
	 *  方式二:使用String類的subString()方法,利用遞迴的方法輸出倒序字串。
	 * @param string
	 * @return
	 */
	public static void  reverseString02(String string){
		if(string.length()==1){
			System.out.print(string);
		}else{
			String subStr1 = string.substring(0, string.length()-1);
			String subStr2 = string.substring(string.length()-1);
			System.out.print(subStr2);
			reverseString02(subStr1);
		}
	}
	
	/**
	 * 方式三:使用StringBuffer類的reverse()方法,將String物件轉換成StringBuffer物件。
	 * @param string
	 * @return
	 */
	public static StringBuffer reverseString03(String string){
		StringBuffer stringBuffer = new StringBuffer(string);
		return stringBuffer.reverse();
	}
}</span>

編寫的測試如下:

<span style="font-size:18px;">public class StringReverseTest {

	/**
	 * 測試字串逆序輸出的方法
	 * @param args
	 */
	public static void main(String[] args) {
        String result = "";
		String string = "Hello Wold!";
		//方法一:
		result = StringReverseOpt.reverseString01(string);
		System.out.println("方法一:"+result);
		//方法二:
		System.out.print("方法二:");
		StringReverseOpt.reverseString02(string);
		System.out.println();
		//方法三:
		System.out.println("方法三:"+StringReverseOpt.reverseString03(string));
	}

}</span>


相關文章