字符串反转之Java实现
1 import java.util.Stack; 2 3 public class StringReverse { 4 5 public static String reverse1(String s) { 6 int length = s.length(); 7 if (length <= 1) 8 return s; 9 String left = s.substring(0, length / 2); 10 String right = s.substring(length / 2, length); 11 return reverse1(right) + reverse1(left); 12 } 13 14 public static String reverse2(String s) { 15 int length = s.length(); 16 String reverse = ""; 17 for (int i = 0; i < length; i++) 18 reverse = s.charAt(i) + reverse; 19 return reverse; 20 } 21 22 public static String reverse3(String s) { 23 char[] array = s.toCharArray(); 24 String reverse = ""; 25 for (int i = array.length - 1; i >= 0; i--) 26 reverse += array[i]; 27 28 return reverse; 29 } 30 31 public static String reverse4(String s) { 32 return new StringBuffer(s).reverse().toString(); 33 } 34 35 public static String reverse5(String orig) { 36 char[] s = orig.toCharArray(); 37 int n = s.length - 1; 38 int halfLength = n / 2; 39 for (int i = 0; i <= halfLength; i++) { 40 char temp = s[i]; 41 s[i] = s[n - i]; 42 s[n - i] = temp; 43 } 44 return new String(s); 45 } 46 47 public static String reverse6(String s) { 48 49 char[] str = s.toCharArray(); 50 51 int begin = 0; 52 int end = s.length() - 1; 53 54 while (begin < end) { 55 str[begin] = (char) (str[begin] ^ str[end]); 56 str[end] = (char) (str[begin] ^ str[end]); 57 str[begin] = (char) (str[end] ^ str[begin]); 58 begin++; 59 end--; 60 } 61 62 return new String(str); 63 } 64 65 public static String reverse7(String s) { 66 char[] str = s.toCharArray(); 67 Stack<Character> stack = new Stack<Character>(); 68 for (int i = 0; i < str.length; i++) 69 stack.push(str[i]); 70 71 String reversed = ""; 72 for (int i = 0; i < str.length; i++) 73 reversed += stack.pop(); 74 75 return reversed; 76 } 77 78 }