import
java.util.Stack;
public
class
StringReverse {
public
static
String reverse1(String s) {
int
length = s.length();
if
(length <= 1)
return
s;
String
left = s.substring(0,
length / 2);
String
right = s.substring(length / 2,
length);
return
reverse1(right) + reverse1(left);
}
public
static
String reverse2(String s) {
int
length = s.length();
String
reverse = "";
for
(int
i = 0;
i < length; i++)
reverse
= s.charAt(i) + reverse;
return
reverse;
}
public
static
String reverse3(String s) {
char[]
array = s.toCharArray();
String
reverse = "";
for
(int
i = array.length - 1;
i >= 0;
i--)
reverse
+= array[i];
return
reverse;
}
public
static
String reverse4(String s) {
return
new
StringBuffer(s).reverse().toString();
}
public
static
String reverse5(String orig) {
char[]
s = orig.toCharArray();
int
n = s.length - 1;
int
halfLength = n / 2;
for
(int
i = 0;
i <= halfLength; i++) {
char
temp = s[i];
s[i]
= s[n - i];
s[n
- i] = temp;
}
return
new
String(s);
}
public
static
String reverse6(String s) {
char[]
str = s.toCharArray();
int
begin = 0;
int
end = s.length() - 1;
while
(begin < end) {
str[begin]
= (char)
(str[begin] ^ str[end]);
str[end]
= (char)
(str[begin] ^ str[end]);
str[begin]
= (char)
(str[end] ^ str[begin]);
begin++;
end--;
}
return
new
String(str);
}
public
static
String reverse7(String s) {
char[]
str = s.toCharArray();
Stack<Character>
stack = new
Stack<Character>();
for
(int
i = 0;
i < str.length; i++)
stack.push(str[i]);
String
reversed = "";
for
(int
i = 0;
i < str.length; i++)
reversed
+= stack.pop();
return
reversed;
}
}