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