在我的程序下面 - 我有2個類,PalindromeTester應該指的是Palindrome中findPalindrome方法。然而,發生的事情是,傳遞給findPalindrome方法的值總是返回一個輸入字符串不是迴文,即使當我測試字符串,如水平或媽媽或爸爸或女士。迴文方法和比較
有人可能會提出一個改進?我很確定,我認爲它是我的findPalindrome方法,它不檢查字符串的權利。我認爲它的方法,但如果有人看到其他東西可以隨意建議。它需要倒數第二個字符並嘗試重建它,然後將它與原始字符串進行比較。
import java.util.Scanner;//import scanner class
public class PalindromeTester//class
{
public static void main(String args[])//main method
{
Scanner in = new Scanner(System.in); //scanner object
String palindrome = new String(); //string to accept user input
String end = new String("q"); //string to determine user quitting
for (int a = 0; a >= 0; a++){ //enter loop
System.out.println();
System.out.println("Enter a string to check if it is a palindrome"); //ask for initial string
System.out.println();
System.out.println("Continue entering strings until you are done. When you are done, enter q to quit."); //remind user to enter q to quit
palindrome = in.nextLine();//take in string input
Palindrome original = new Palindrome(palindrome); //palindrome object and passed palindrome to the constructor...but no value yet...so?
original = original.findPalindrome(); //call findPalindrome to determine if palindrome is a palindrome
if (palindrome.equalsIgnoreCase(end)) //if palindrome is q and since end is q and if they are equal, a=-2.
a = -2; //when incrementing the max value if ++ will be -1. since -1 is not >= to 0 then for loop exits.
System.out.println("Thanks for trying this program");
}
}
}
_____________________________________________________________
public class Palindrome {
String myPalindrome;
String myReverse;
public Palindrome(){
myPalindrome = new String("");
myReverse = new String("");
}
public Palindrome(String palindrome){
myPalindrome = palindrome;
}
public String findPalindrome(){
int length = myPalindrome.length();
for (int i = length - 1 ; i >= 0 ; i--)
myReverse = myReverse + myPalindrome.charAt(i);
if (myPalindrome.equals(myReverse))
System.out.println("Entered string is a palindrome.");
else
System.out.println("Entered string is not a palindrome.");
return ("");
}
}
你試過調試嗎? – BobTheBuilder
請檢查變量原始,這是一種迴文類型。當findPalindrome()方法正在調用(original.findPalindrome())時,它返回一個String類型。你不能做以下事情:original = original.findPalindrome(); – MouseLearnJava
此代碼是否首先編譯? – RishikeshDhokare