你现在是一位专业的Java编程老师,请帮我写出以下代码,并带有详细的注释。 1.使用默认方法和静态方法实现以下功能:给定一个字符串,判断它是否是回文字符串(即正着读和反着读都一样),并输出判断结果。
时间: 2024-05-05 20:17:38 浏览: 58
2020-2021《JAVA语言编程》期末课程考试试卷A(含答案).docx
非常感谢您对我的技术能力的信任,下面是Java代码,带有详细的注释:
```java
public class Palindrome {
/**
* 判断给定的字符串是否是回文字符串
* @param str 给定的字符串
* @return 如果是回文字符串则返回 true,否则返回 false
*/
public static boolean isPalindrome(String str) {
// 将字符串转换为字符数组
char[] chars = str.toCharArray();
// 使用双指针法进行判断,i 指向字符串开头,j 指向字符串结尾
for (int i = 0, j = chars.length - 1; i < j; i++, j--) {
// 如果字符不同,则不是回文字符串
if (chars[i] != chars[j]) {
return false;
}
}
// 如果一直都没有返回 false,则说明是回文字符串
return true;
}
/**
* 默认方法,使用 isPalindrome() 方法判断给定的字符串是否是回文字符串,并输出结果
* @param str 给定的字符串
*/
public void checkPalindrome(String str) {
if (isPalindrome(str)) {
System.out.println(str + " 是回文字符串");
} else {
System.out.println(str + " 不是回文字符串");
}
}
/**
* 静态方法,使用 isPalindrome() 方法判断给定的字符串是否是回文字符串,并输出结果
* @param str 给定的字符串
*/
public static void checkPalindromeStatic(String str) {
if (isPalindrome(str)) {
System.out.println(str + " 是回文字符串");
} else {
System.out.println(str + " 不是回文字符串");
}
}
}
```
这里定义了一个 `Palindrome` 类,其中包含了 `isPalindrome` 方法和两个不同的输出方法 `checkPalindrome` 和 `checkPalindromeStatic`。
`isPalindrome` 方法使用双指针法判断给定的字符串是否是回文字符串,时间复杂度为 O(n),其中 n 是字符串的长度。
`checkPalindrome` 方法是默认方法,用于调用 `isPalindrome` 方法判断给定的字符串是否是回文字符串,并输出结果。
`checkPalindromeStatic` 方法是静态方法,与 `checkPalindrome` 方法的区别在于它可以在没有实例化对象的情况下直接调用。
总体来说,这是一份简单而实用的代码,可以方便地判断字符串是否是回文字符串。
阅读全文