Java 判断字符串回文338


回文字符串是指从左到右和从右到左读起来都相同的字符串。在 Java 中,判断一个字符串是否回文需要进行以下步骤:

1. 将字符串转换为小写或大写:
为了避免大小写敏感问题,建议将字符串转换为小写或大写。这可以通过调用 toLowerCase() 或 toUpperCase() 方法实现。例如:String str = "Radar";
str = (); // str 为 "radar"

2. 使用 StringBuilder 反转字符串:
创建一个 StringBuilder 对象,然后使用 reverse() 方法反转字符串。例如:StringBuilder reversedStr = new StringBuilder(str).reverse();

3. 比较原始字符串和反转字符串:
使用 equals() 方法比较原始字符串和反转字符串。如果它们相等,则该字符串是回文,否则不是。例如:if ((())) {
("字符串 " + str + " 是回文。");
} else {
("字符串 " + str + " 不是回文。");
}

以下是 Java 程序的完整示例:import ;
public class Palindrome {
public static void main(String[] args) {
Scanner input = new Scanner();
("请输入一个字符串:");
String str = ();
str = ();
StringBuilder reversedStr = new StringBuilder(str).reverse();
if ((())) {
("字符串 " + str + " 是回文。");
} else {
("字符串 " + str + " 不是回文。");
}
}
}

优化算法:
上述算法的复杂度为 O(n),其中 n 是字符串的长度。可以使用以下优化算法将复杂度降低到 O(1):

使用双指针:
使用两个指针,一个从字符串开头开始,另一个从字符串结尾开始。如果两个指针指向的字符相同,则指针向内移动。否则,字符串不是回文。例如:int i = 0;
int j = () - 1;
while (i < j) {
if ((i) != (j)) {
("字符串 " + str + " 不是回文。");
break;
}
i++;
j--;
}
if (i >= j) {
("字符串 " + str + " 是回文。");
}

2024-12-07


上一篇:Java 数组初始化为空:了解不同方法

下一篇:掌握 Java 中查找数组最大值的技巧