使用StringBuffer的reverse方法
- 性能:性能较好,因为
StringBuffer
内部采用了优化的算法来处理字符串反转,其底层基于字符数组,在操作时直接修改数组内容,不需要额外创建大量中间数据结构,时间复杂度为O(n),n为字符串长度。
- 代码复杂度:代码简单,只需要调用
reverse
方法即可完成字符串反转。
- 代码实现:
public class ReverseString {
public static void main(String[] args) {
String longString = "非常长的字符串内容";
StringBuffer sb = new StringBuffer(longString);
String reversedString = sb.reverse().toString();
System.out.println(reversedString);
}
}
自己实现字符数组逆序
- 性能:性能也不错,时间复杂度同样为O(n),但可能会在一些极端情况下(如字符串非常长时)略逊于
StringBuffer
的reverse
方法,因为手动实现可能没有StringBuffer
底层实现优化得那么好,比如在内存分配和数组操作细节上。
- 代码复杂度:代码相对复杂一些,需要手动处理字符数组的遍历、交换等操作。例如:
public class ReverseStringSelf {
public static void main(String[] args) {
String longString = "非常长的字符串内容";
char[] charArray = longString.toCharArray();
int left = 0;
int right = charArray.length - 1;
while (left < right) {
char temp = charArray[left];
charArray[left] = charArray[right];
charArray[right] = temp;
left++;
right--;
}
String reversedString = new String(charArray);
System.out.println(reversedString);
}
}