java移动用于确定字符串是否为回文的逻辑
目前,我对如何将确定字符串是否为回文的逻辑从主方法移动到名为checkPalindrome的方法感到非常困惑?我的方法应该有一个字符串参数,并返回一个布尔值,但我仍然不确定如何做到这一点
import java.util.Scanner;
public class PalindromeCheckMethod {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter a String: ");
String s = input.nextLine();
boolean isPalindrome = checkPalindrome(s);
String msg = "not a palindrome";
if (isPalindrome) {
msg = "a palindrome";
}
System.out.printf("%s is %s.%n", s, msg);
s = s.toLowerCase();
String resultString = "";
for (int i = 0; i < s.length(); i++) {
if (Character.isLetter(s.charAt(i)))
resultString += s.charAt(i);
}
s = resultString;
int low = 0;
int high = s.length() - 1;
if (high >= 0) {
while (low < high) {
if (s.charAt(low) != s.charAt(high)) {
isPalindrome = false;
break;
}
low++;
high--;
}
}
else {
isPalindrome = false;
}
if (isPalindrome)
System.out.println(s + " is a palindrome. ");
else
System.out.println(s + " is not a palindrome. ");
}
private static boolean checkPalindrome(String s) {
return false;
}
}
# 1 楼答案
我会用^{} 来实现这样一个方法
但是您当然可以用您的实现替换我的实现(我没有验证您的实现)。要调用该方法(并可能利用格式化io),可以使用
# 2 楼答案
你为什么不简单一点呢。确切地说,字符的镜像是相同的,若不是,就不是回文。当你穿过数组的中间而没有发现差异时,它是一个绝对的回文。看看这个
# 3 楼答案
}