Java函数实现:如何检查一个字符串是否是回文?
要检查一个字符串是否是回文,可以使用以下方法实现:
方法一:利用双指针
1. 首先,定义两个指针left和right,指向字符串的首尾字符;
2. 通过循环判断条件,当left小于等于right时,执行以下步骤:
a. 检查left指向的字符是否和right指向的字符相等,如果不相等,则该字符串不是回文,返回false;
b. 如果相等,则将left指针向右移动一位,将right指针向左移动一位,继续进行下一次循环;
3. 循环结束后,如果没有返回false,就说明该字符串是回文,返回true。
方法二:利用字符串反转
1. 定义一个字符串变量reverse,将要判断的字符串反转存入reverse中;
2. 判断反转后的字符串reverse是否和原字符串相等,如果相等则为回文,返回true;否则不是回文,返回false。
以上是两种常用的方法,我们将它们封装成一个函数如下:
public static boolean isPalindrome(String str) {
// 方法一:双指针
int left = 0;
int right = str.length() - 1;
while (left <= right) {
if (str.charAt(left) != str.charAt(right)) {
return false;
}
left++;
right--;
}
// 方法二:字符串反转
String reverse = new StringBuilder(str).reverse().toString();
if (str.equals(reverse)) {
return true;
} else {
return false;
}
}
调用该函数:
boolean result = isPalindrome("madam");
System.out.println(result); // 输出true
注意:上述代码中字符串的比较,可以使用equals()方法进行比较,而不是使用==运算符,因为==比较的是引用地址是否相等,不比较字符串的内容。
