Palindrome Check in Java 使用两种方法将无法编译

Palindrome Check in Java using two Methods will not compile

我正在为一项 class 作业而努力,但我终其一生都无法编译它。我不断收到此错误:

CPT236PalindromeCheckMethod.java:52: error: reached end of file while parsing } ^ 1 error

我已经尝试添加、移除和检查我所有的牙套,但我没有发现任何问题。我是编程新手,所以我想新的眼光可能会帮助我找到问题所在。

import java.util.Scanner;
public class CPT236PalindromeCheckMethod {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Enter a string: ");
        String s = input.nextLine();

        if (checkPalindrome(s))
            System.out.println(s + " is a palindrome");
        else
            System.out.println(s + " is not a palindrome");
    }

    public static boolean checkPalindrome(String str){

        String lowerString = str.toLowerCase();
        String resultString = "";

        for(int i=0; i<lowerString.length(); i++) {
            if(Character.isLetter(lowerString.charAt(i))) {
            resultString = resultString + lowerString.charAt(i);
       }
    }

    int low = 0;

    int high = resultString.length() - 1;

    boolean isPalindrome = true;
    while (low < high) {
        if (resultString.charAt(low) != resultString.charAt(high)) {
            isPalindrome = false;
            break;
    }

    low++;
    high--; 
  }

}

使用IDE(如Eclipse, NetBeans...),以便您可以轻松缩进代码。

现在在你的文件末尾放一个 }

在方法 checkPalindrome() 中添加 return 语句。

while 循环结束时,

while (low < high) {
    if (resultString.charAt(low) != resultString.charAt(high)) {
        isPalindrome = false;
        break;
    }

    low++;
    high--;
}
return isPalindrome; // add this line

我添加了一个return语句,

return isPalindrome;

和运行你的代码,

Input : Enter a string: madam

Outout : madam is a palindrome

您需要在第二种方法中使用 return 值。它需要 return true 或 false。 Return是回文。

您最好使用 SublimeText 或 Eclipse。这样它会用 JAVAC 实时调试你的文本,并告诉你错误在哪里。实时排除故障要容易得多。

import java.util.Scanner;

public class CPT236PalindromeCheckMethod {
    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        System.out.print("Enter a string: ");
        String s = input.nextLine();

        if (checkPalindrome(s))
            System.out.println(s + " is a palindrome");
        else
            System.out.println(s + " is not a palindrome");
    }

    public static boolean checkPalindrome(String str) {

        String lowerString = str.toLowerCase();
        String resultString = "";

        for (int i = 0; i < lowerString.length(); i++) {
            if (Character.isLetter(lowerString.charAt(i))) {
                resultString = resultString + lowerString.charAt(i);
            }
        }

        int low = 0;

        int high = resultString.length() - 1;

        boolean isPalindrome = true;
        while (low < high) {
            if (resultString.charAt(low) != resultString.charAt(high)) {
                isPalindrome = false;
                break;
            }

            low++;
            high--;

        }
        return isPalindrome;
    }
}