7中将字符串反转的Java方法

引用:http://www.oschina.net/code/snippet_12_9060
[代码] [Java]代码
view sourceprint?01 import java.util.Stack; 

02 public class StringReverse { 

03    

04  public static String reverse1(String s) { 

05   int length = s.length(); 

06   if (length <= 1) 

07    return s; 

08   String left = s.substring(0, length / 2); 

09   String right = s.substring(length / 2, length); 

10   return reverse1(right) + reverse1(left); 

11  } 

12    

13  public static String reverse2(String s) { 

14   int length = s.length(); 

15   String reverse = ""; 

16   for (int i = 0; i < length; i++) 

17    reverse = s.charAt(i) + reverse; 

18   return reverse; 

19  } 

20    

21  public static String reverse3(String s) { 

22   char[] array = s.toCharArray(); 

23   String reverse = ""; 

24   for (int i = array.length - 1; i >= 0; i--) 

25    reverse += array[i]; 

26    

27   return reverse; 

28  } 

29    

30  public static String reverse4(String s) { 

31   return new StringBuffer(s).reverse().toString(); 

32  } 

33    

34  public static String reverse5(String orig) { 

35   char[] s = orig.toCharArray(); 

36   int n = s.length - 1; 

37   int halfLength = n / 2; 

38   for (int i = 0; i <= halfLength; i++) { 

39    char temp = s[i]; 

40    s[i] = s[n - i]; 

41    s[n - i] = temp; 

42   } 

43   return new String(s); 

44  } 

45    

46  public static String reverse6(String s) { 

47    

48   char[] str = s.toCharArray(); 

49    

50   int begin = 0; 

51   int end = s.length() - 1; 

52    

53   while (begin < end) { 

54    str[begin] = (char) (str[begin] ^ str[end]); 

55    str[end] = (char) (str[begin] ^ str[end]); 

56    str[begin] = (char) (str[end] ^ str[begin]); 

57    begin++; 

58    end--; 

59   } 

60    

61   return new String(str); 

62  } 

63    

64  public static String reverse7(String s) { 

65   char[] str = s.toCharArray(); 

66   Stack<Character> stack = new Stack<Character>(); 

67   for (int i = 0; i < str.length; i++) 

68    stack.push(str[i]); 

69    

70   String reversed = ""; 

71   for (int i = 0; i < str.length; i++) 

72    reversed += stack.pop(); 

73    

74   return reversed; 

75  } 

76    

77 }

你可能感兴趣的:(java)