String反转的几种方式
今天在力扣做回文数算法题的时候,想到的解决方案是:字符串反转,然后判断两个字符串是否相同。所以就在网上查询了String字符串反转的相关资料,下面是我找到的几种方法,在这里记录一下
方法一:StringBuffer.reverse()方法
StringBuffer提供了字符串反转的方法
/**
* 字符串翻转StringBuffer
* @param str
* @return
*/
private String reverse(String str){
StringBuffer sb = new StringBuffer(str);
sb.reverse();
return sb.toString();
}
方法二:调用String对象的charAt()方法,将字符串从后往前依次取出来,存入StringBuilder
/**
* 调用String对象的charAt()方法,将字符串从后往前依次取出来
* 然后添加到StringBuffer当中去,在转换成String对象
* @param str
* @return
*/
private String reverse1(String str){
StringBuilder sb = new StringBuilder();
for(int i = str.length() - 1; i >= 0; i-- ){
sb.append(str.charAt(i));
}
return sb.toString();
}
方法三:将String字符串转换成字符数组,反转字符数组
/**
* 将String字符串转换成字符数组,反转字符数组后,在将数组转化为String对象
* @param str
* @return
*/
private String reverse3(String str){
char[] chars = str.toCharArray();
for (int x = 0, y = chars.length - 1; x < y; x++, y--) {
char temp = chars[x];
chars[x] = chars[y];
chars[y] = temp;
}
return new String(chars);
}
经力扣提交测试:
运行速度:方法三 > 方法二 = 方法一,
内存消耗:方法三 = 方法二 < 方法一。
原文作者:梦境听雨
原文链接:https://blog.csdn.net/XF777/article/details/81095249