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;
}
}
我正在为一项 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;
}
}