0

私は現在、高校で取っているクラスのために Java で回文テスターを書いています。私は先生に助けを求めましたが、彼も混乱しています。私は、stackoverflow のコミュニティが私を助けてくれることを望んでいました。ありがとうございました。

public class Palindrome
{
    private String sentence;
    public Palindrome(String s)
    {
        sentence = s;
    }

    public boolean isPalindrome()
    {
        if(sentence.length() <= 1)
        {
            return true;
        }

        if(sentence.charAt(0) == sentence.charAt(sentence.length()-1))
        {
            sentence = sentence.substring(1, sentence.length()-1);
            isPalindrome();
        }
        else
            return false;
    }

}
4

5 に答える 5

3

変化する

if (sentence.charAt(0) == sentence.charAt(sentence.length()-1))
{
    sentence = sentence.substring(1, sentence.length()-1);
    isPalindrome();
}

if (sentence.charAt(0) == sentence.charAt(sentence.length()-1))
{
    sentence = sentence.substring(1, sentence.length()-1);
    return isPalindrome();
}

メソッドを準拠させるために、JVM は、考えられるすべてのケースに対してメソッドに return ステートメントがあることを確認する必要があります (これはまだ行っていません)。

于 2013-09-13T13:58:31.630 に答える
2

コードがこのパスを取る場合、return ステートメントはありません。先生が混乱している場合は、新しい先生が必要です。

if(sentence.charAt(0) == sentence.charAt(sentence.length()-1))
{
    sentence = sentence.substring(1, sentence.length()-1);
    isPalindrome();
}
于 2013-09-13T14:00:37.413 に答える
0

あなたが本当にelse句でfalseを返したい場合は、最後のif句が戻りません。

于 2013-09-13T13:59:21.253 に答える
0

再帰的な方法を使用して、文が回文かどうかを確認します。次のスニペット内で isPalindrome() メソッドを返すことをお勧めします

if(sentence.charAt(0) == sentence.charAt(sentence.length()-1))
        {
            sentence = sentence.substring(1, sentence.length()-1);
            return isPalindrome();
        }

これは私のコードです:

public class palindrome
{
    private String sentence;
    public palindrome(String s)
    {
        sentence = s;
    }

    public boolean isPalindrome()
    {
        if(sentence.length() <= 1)
        {
            return true;
        }

        if(sentence.charAt(0) == sentence.charAt(sentence.length()-1))
        {
            sentence = sentence.substring(1, sentence.length()-1);
            return isPalindrome();
        }
        else
            return false;
    }

    public static void main(String [] args)
    {
        palindrome p=new palindrome("aabbaa");
        if(p.isPalindrome())
            System.out.println("yes");
        else
            System.out.println("no");
    }
}
于 2016-05-18T01:03:30.640 に答える