java如何判断反转
判断字符串是否反转的方法
在Java中,判断一个字符串是否为另一个字符串的反转可以通过多种方式实现。以下是几种常见的方法:
方法1:使用StringBuilder的reverse方法
创建一个StringBuilder对象,调用其reverse方法将字符串反转,然后与原字符串进行比较。
public static boolean isReversed(String str1, String str2) {
return str1.equals(new StringBuilder(str2).reverse().toString());
}
方法2:手动反转比较
通过遍历字符串的字符,手动构建反转后的字符串,然后进行比较。
public static boolean isReversed(String str1, String str2) {
if (str1.length() != str2.length()) {
return false;
}
String reversed = "";
for (int i = str2.length() - 1; i >= 0; i--) {
reversed += str2.charAt(i);
}
return str1.equals(reversed);
}
方法3:使用字符数组
将字符串转换为字符数组,手动反转数组后再转换为字符串进行比较。
public static boolean isReversed(String str1, String str2) {
if (str1.length() != str2.length()) {
return false;
}
char[] chars = str2.toCharArray();
int left = 0;
int right = chars.length - 1;
while (left < right) {
char temp = chars[left];
chars[left] = chars[right];
chars[right] = temp;
left++;
right--;
}
return str1.equals(new String(chars));
}
方法4:直接比较字符
不显式反转字符串,而是直接比较对应位置的字符。

public static boolean isReversed(String str1, String str2) {
if (str1.length() != str2.length()) {
return false;
}
for (int i = 0; i < str1.length(); i++) {
if (str1.charAt(i) != str2.charAt(str2.length() - 1 - i)) {
return false;
}
}
return true;
}
性能比较
- StringBuilder的reverse方法:简洁高效,推荐使用。
- 手动反转比较:代码较长,性能较差,不推荐。
- 字符数组方法:性能较好,适合需要直接操作字符的场景。
- 直接比较字符:无需额外空间,性能较好。
示例测试
public static void main(String[] args) {
String str1 = "hello";
String str2 = "olleh";
System.out.println(isReversed(str1, str2)); // true
}
选择哪种方法取决于具体需求,如代码简洁性、性能要求等。






