这是我前段时间面试平安惠普项目的一个面试题,当时没有回答出来,特写此博客标记!
//将字符串反转有几种方法!
public class StringReversal {
/*
* 方法三:调用String对象的charAt()方法,将字符串从后往前依次取出来,
* 然后添加到StringBuffer当中去,在转换成String对象
*/
public static String reverse1(String str){
StringBuffer sb = new StringBuffer();
for (int x = str.length() -1; x >= 0; x--) {
sb.append(str.charAt(x));
}
return sb.toString();
}
/*
* 方法二:将String对象转换成Stringbuffer对象后,
* 调用StringBuffer的reverse()方法实现反转,然后在转换成String对象
*/
public static String reverse(String str){
StringBuffer sb = new StringBuffer(str);
StringBuffer res = sb.reverse();
return res.toString();
}
/*
* 方法一:将String字符串转换成字符数组,反转字符数组后,在将数组转化为String对象
*/
public static String reversal(String str) {
char[] array = str.toCharArray();
for (int x = 0, y = array.length - 1; x < y; x++, y--) {
char temp = array[x];
array[x] = array[y];
array[y] = temp;
}
return new String(array);
}
public static void main(String[] args) {
String str = "飞利浦剃须刀";
String st = reversal(str);
System.out.println(st);
String string = reverse(str);
System.out.println(string);
String str2 = reverse1(str);
System.out.println(str2);
}
}