我正在为一个班级作业而努力,我不能为我的生活得到它来编译。我一直收到这个错误:
CPT236PalindromeCheckMethod.java:52:错误:解析时到达文件末尾 } ^ 1错误
我试过添加,删除和检查我的所有大括号,但我发现它没有任何问题。我是编程新手,所以我认为新鲜的眼睛可能会帮助我找到问题。
{{1}}
}
答案 0 :(得分:1)
使用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;
并使用
运行您的代码输入:输入字符串:女士
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;
}
}