字符串反转

以下为字符串反转的几种方法

遍历字符数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

public static void reverse3(String src){
if(src==null){
throw new IllegalArgumentException(src);
}
int length=src.length();
char[] srcChar=src.toCharArray();
for(int i=0;i<length/2;i++){
char temp=srcChar[i];
srcChar[i]=srcChar[length-i-1];
srcChar[length-i-1]=temp;
}
System.out.println(new String(srcChar));
}



public static void reverse1(String src){
if(src==null){
throw new IllegalArgumentException(src);
}
int length=src.length();
char[] dest=new char[length];
char[] srcChar=src.toCharArray();
for(int i=0;i<length;i++){
dest[i]=srcChar[length-i-1];
}
System.out.println(new String(dest));
}

递归

1
2
3
4
5
6
7
8
9
10
11
12
13
public static String reverse4(String src){
if(src==null){
throw new IllegalArgumentException(src);
}
int length=src.length();
if(length<=1){
return src;
}
String left=src.substring(0,length/2);
String right=src.substring(length/2,length);
return reverse4(right)+reverse4(left);

}

使用StringBuffer

1
2
3
4
5
6
7
8
9

public static void reverse2(String src){
if(src==null){
throw new IllegalArgumentException(src);
}
StringBuffer sb=new StringBuffer(src);
sb.reverse();
System.out.println(sb.toString());
}
坚持原创技术分享,您的支持将鼓励我继续创作!