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

时间:2015-06-17 15:29:59

标签: java methods compilation palindrome

我正在为一个班级作业而努力,我不能为我的生活得到它来编译。我一直收到这个错误:

  

CPT236PalindromeCheckMethod.java:52:错误:解析时到达文件末尾   } ^   1错误

我试过添加,删除和检查我的所有大括号,但我发现它没有任何问题。我是编程新手,所以我认为新鲜的眼睛可能会帮助我找到问题。

{{1}}

}

2 个答案:

答案 0 :(得分:1)

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

现在在文件的末尾添加}

在方法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;

并使用

运行您的代码
  

输入:输入字符串:女士

     

Outout:女士是一个回文

答案 1 :(得分:0)

您需要在第二种方法中使用返回值。它需要返回true或false。返回isPalindrome。

理想情况下,您应该使用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;
    }
}