欢迎访问宙启技术站
智能推送

如何使用Java编写函数来检查一个字符串是否是回文

发布时间:2023-06-21 14:06:29

回文是指一个字符串可以从前往后和从后往前读取都是相同的,比如"level"、"racecar"、"abccba"都是回文字符串。在Java中,我们可以编写一个函数来检查一个字符串是否是回文。

首先,我们需要定义一个函数,该函数接受一个字符串作为参数,返回一个布尔值,表示该字符串是否是回文。函数定义如下:

public static boolean isPalindrome(String str) {
    //TODO: 实现判断是否是回文字符串
}

接下来,我们需要编写实现代码来判断字符串是否是回文。一种简单的方法是将字符串从中间分开,然后将前半部分和后半部分翻转,并对比两个翻转后的子串是否相同。代码实现如下:

public static boolean isPalindrome(String str) {
    int length = str.length();
    for (int i = 0; i < length / 2; i++) {
        if (str.charAt(i) != str.charAt(length - i - 1)) {
            return false;
        }
    }
    return true;
}

上述代码中,我们首先获取字符串的长度,然后循环前半部分字符,判断是否和后半部分对称位置的字符相同。如果有不同的字符,则说明不是回文,直接返回false;否则,遍历完全部字符,说明是回文,返回true。

我们可以使用下面的代码来测试这个函数:

public static void main(String[] args) {
    String s1 = "level";
    String s2 = "hello";
    System.out.println(s1 + " is palindrome: " + isPalindrome(s1));
    System.out.println(s2 + " is palindrome: " + isPalindrome(s2));
}

测试结果如下:

level is palindrome: true
hello is palindrome: false

可以看到,函数能够正确地判断字符串是否是回文。

除了上述方法,还有其他一些方法可以判断字符串是否是回文,比如使用两个指针分别从头尾往中间移动,然后比较对应位置的字符是否相同。无论使用哪种方法,都可以编写一个函数来实现。