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 }