java字符串反转和String、StringBuilder、StringBuffer的区别
String 类——字符串常量
String的值是不可变的,这就导致每次String的操作都要生成新的String对象,效率低下且浪费内存。
StringBuffer和StringBuild——变化字符串
StringBuilder和StringBuffer 的对象能够被多次的修改,并且不产生新的未使用对象。
StringBuilder 效率高,线程不安全。
StringBuffer 效率低,线程安全。
方法一:C式方法 public static String reverse(String str) { char[] charArr = str.toCharArray(); for (int start = 0, end = charArr.length - 1; start < end; start++, end--) { char tmp = charArr[start]; charArr[start] = charArr[end]; charArr[end] = tmp; } return new String(charArr); }
方法二:利用StringBuffer的reverse方法 public static String reverse(String str){ StringBuffer sb = new StringBuffer(str); StringBuffer res = sb.reverse(); return res.toString(); }
方法三:利用StringBuffer的append方法 public static String reverse1(String str){ StringBuffer sb = new StringBuffer(); for (int i = str.length() -1; i >= 0; i--) { sb.append(str.charAt(i)); } return sb.toString(); }