给大家介绍其中常用和不常用的将字符串翻转过来的方法: 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 | } |