将字符串反转的Java方法
Java的中经常会用到将字符串进行反转的时候,程序员孔乙己总结了7种反转方法,如下:
//方法1递归方法
public
static
String reverse1(String s){
int
length =
s.length();
if
(length <= 1
){
回归
;
}
String left
= s.substring(0,length / 2
);
String right
= s.substring(length / 2
,length);
return
reverse1(右)+
reverse1(左);
}
//方法2通过charAt(int index)返回char值进行字符串拼接
public
static
String reverse2(String s){
int
length =
s.length();
String reverse
=“”
;
for
(
int
i = 0; i <length; i ++
)
reverse
= s.charAt(i)+
reverse;
回归
;
}
//方法3把字符串转换成字符数组倒叙拼接然后返回值
public
static
String reverse3(String s){
char
[] array =
s.toCharArray();
String reverse
=“”
;
for
(
int
i = array.length - 1; i> = 0; i--
)
反向
+ =
数组[i];
回归
;
}
//方法4调用StringBuffer中的反方法
public
static
String reverse4(String s){
返回
new
StringBuffer(s).reverse()。toString();
}
//方法5把字符串转换成字符数组首位对调位置
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);
}
//方法6
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]);
开始
++
;
结束
-
;
}
return new String(str);
}
//方法7
import java.util.Stack;
public class StringReverse {
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 [1]);
String reversed =“”;
for(int i = 0; i <str.length; i ++)
revers + = stack.pop();
回归逆转;
}
}