字串反轉 java實現

2021-09-22 02:45:40 字數 2276 閱讀 2728

將乙個字串反轉

這是乙個常見的問題,在實際的開發中也經常用到,解決的方法有很多種。我使用下面四種方法進行,並且最後比較其中的效率。

/**

* 利用系統自帶的stringbuilder.reverse() 進行反轉

* @param str

* @return

*/public static string reversebystringbuilder(string str)

return new stringbuilder(str).reverse().tostring();

}/**

* 使用字串進行二分反轉

* @return

*/public static string reversebychararray(string str)

char charr = str.tochararray();

int len = charr.length;

for (int i = (len-1) / 2; i >= 0; i--)

return new string(charr);

}/**

* 使用異或進行翻轉

* 將二進位制 a = 1101, b = 1000 進行反轉.

* 1 a = 1101 ^ 1000 此時 a = 1010, b = 1000

* 2 b = 1000 ^ 1010 此時 a = 1010, b = 1101

* 3 a = 1101 ^ 1010 此時 a = 1000, b = 1101

* @return

*/public static string reversebyxor(string str)

char charr = str.tochararray();

int len = charr.length ;

for (int i = 0, j = len -1; i < len/2; i++, j--)

return new string(charr);

}/**

* 使用棧進行翻轉

* @param str

* @return

*/public static string reversebystack(string str)

stackstack = new stack<>();

int len = str.length();

for (int i = 0; i < len; i++)

stringbuilder sb = new stringbuilder();

for (int i = 0; i < len; i++)

return sb.tostring();

}public static void main(string args)

str = sb.tostring();

long starttime = system.nanotime();

string str1 = reversebystringbuilder(str);

long endtime = system.nanotime();

system.out.println(" time:"+(endtime - starttime)+" stringbuilder.reverse(): "+str1);

starttime = system.nanotime();

str1 = reversebychararray(str);

endtime = system.nanotime();

system.out.println(" time:"+(endtime - starttime)+" reversebychararray: "+str1);

starttime = system.nanotime();

str1 = reversebyxor(str);

endtime = system.nanotime();

system.out.println(" time:"+(endtime - starttime)+" reversebyxor: "+str1);

starttime = system.nanotime();

str1 = reversebystack(str);

endtime = system.nanotime();

system.out.println(" time:"+(endtime - starttime)+" reversebystack: "+str1);

}}

java實現字串反轉

問題 給乙個字串,比如 i love china 把字元反轉後變成 china love i 思路 先把字串從第乙個字元與最後乙個字元對換,第二個字元和倒數第二個字元對換,這樣,我們就把每乙個單詞位置互換了。但是我們要求單詞裡面字元的順序是不能變的,所以,我們要把每乙個單詞裡面的字元從頭到尾對換一下...

Java實現字串反轉

本案例需要完成的任務定義如下 定義和實現乙個介面,並使用其完成字串的反轉。定義介面 public inte ce interreverse 實現介面 基本思想是用 charat 方法將字串打散為字元,用 char 型陣列c 儲存反轉後後的字元,最後用 string 的靜態方法 valueof 將反轉...

實現字串反轉

package exercise 實現乙個字串中字元順序的反轉 author lsq public class stringinversedemo 方法一 把字串轉換成字元陣列,然後遍歷字元陣列,注意這裡從字元陣列的角標從高向低遍歷。public static string reverse1 str...