2 votes

La fonction palindrome récursive renvoie toujours une valeur de résultat par défaut ?

public static String check(String str)
{
    String result = "";

    // Strips the string down to only letters a-z and numbers 0-9, and makes it lowercase
    str = str.replaceAll("[^A-Za-z0-9]", "");
    str = str.replaceAll("\\s+","");
    str = str.toLowerCase();

    if (str.length() < 1) 
    {
        result = "The string is a palindrome";
    }
    else if ((str.charAt(str.length() - 1)) == (str.charAt(0)))
    {
        StringBuilder sb = new StringBuilder(str);
        sb.deleteCharAt(0);
        sb.deleteCharAt(sb.length()-1);
        check(sb.toString());
    }
    else 
    {
        result = "The string is not a palindrome";
    }
    return result;
}

J'ai essayé de passer plusieurs chaînes de caractères dans cette méthode, y compris des palindromes. Pour une raison quelconque, elle renvoie toujours la valeur par défaut de "". Pourquoi la méthode ne renvoie-t-elle pas l'information indiquant si la chaîne est un palindrome ou non ?

3voto

abioticGirl Points 143

Vous devez ajouter return avant l'appel récursif. Essayez de cette façon :

public static String check(String str)
{

    // Strips the string down to only letters a-z and numbers 0-9, and makes it lowercase
    str = str.replaceAll("[^A-Za-z0-9]", "");
    str = str.replaceAll("\\s+","");
    str = str.toLowerCase();

    if (str.length() <= 1)
    {
        return ("The string is a palindrome" );

    }
    else if ((str.charAt(str.length() - 1)) == (str.charAt(0)))
    {
        StringBuilder sb = new StringBuilder(str);
        sb.deleteCharAt(0);
        sb.deleteCharAt(sb.length()-1);
        return check(sb.toString());
    }
    else
    {
        return "The string is not a palindrome";

    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X