面試的過程中經常會出現這樣一個問題:寫一個函數,將給定的字符串倒序輸出。
以下是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>