charAt erreur “char ne peut pas être converti en chaîne”

Je suis en train d'utiliser le code suivant, de sorte que, étant donné une chaîne de caractères, donner la longueur de la plus longue sous-suite contiguë de même caractère. J'obtiens l'erreur "incompatible types: char ne peut pas être converti en java.lang.Chaîne". J'ai commenté à l'endroit où l'erreur est d'être trouvé ci-dessous.

public class Test {
    public int longestRep(String str)
    {
        int currLen = 1;
        String currLet = "";
        String maxLet = "";
        int maxCount = 0;
        int currPos = 0;
        int strLen = str.length();
        for(currPos = 0; currPos < strLen; currPos++)
        {
            currLet = str.charAt(currPos); //error is on this line
            if(currLet = str.charAt(currPos+1))
            {
                currLen++;
            }
            else
            {
                if(currLen > maxLen)
                {
                    maxLen = currLen;
                    maxLet = currLet;
                    currLen = 1;
                }
            }
        }
    }
    public static void main(String args[])
    {
        longestRep("AaaaMmm");
    }
}
C'est parce qu'un char ne peut pas être converti en Chaîne de caractères - je ne suis pas sûr de ce qu'il est de ne pas comprendre.
désolé, je suis un débutant en Java et je suis encore en apprentissage de la syntaxe, etc...
Vous pouvez changer String currLet = ""; à char currLet = ' '; et String == String n'est pas la façon dont String comparaison fonctionne en Java de toute façon...
J'ai utilisé cette solution @MadProgrammer , mais maintenant j'ai une erreur sur la ligne suivante en disant: "incompatible types: char ne peut pas être converti en booléen"
C'est parce que if(currLet = str.charAt(currPos+1)) - = est une mission, pas une comparaison, vous essayez d'affecter la valeur de str.charAt(currPos+1) à currLet ce qui résulte en une char, mais if est à la recherche d'un boolean résultat ...

OriginalL'auteur Hugo Pakula | 2015-03-26