0
votes

Comparaison de deux cordes en Java en utilisant Charat

Je dois comparer deux chaînes à l'aide de la fonction Charat () et retourne true si les chaînes sont identiques ou false si elles ne sont pas xxx

comparant les mots suivants:
1. Test - test /
2. Test - test /
3. Test - test /
4. Testez le test

sortie réelle:
1. VRAI
2. Faux
3. VRAI
4. True

Sortie attendue:
1. VRAI
2. Faux
3. Faux
4. FALSE


5 commentaires

Vous ne devriez pas retourner true lorsque les premiers personnages correspondent, vous devez continuer à regarder le reste. Aussi, pas besoin de comparer des caractères pour i! = J (pas besoin de vraiment avoir deux boucles vraiment).


Vous comparez uniquement le premier personnage, puis retournez vrai. S'il vous plaît déboguer / passer à travers votre code pour voir où vous avez mal tourné


Que dois-je retourner après Word1.charat (I) == Word2.Charat (i) ?? Je comprends pourquoi mon programme ne fonctionne pas, mais je ne peux pas comprendre comment le réparer


Pourquoi avez-vous 2 pour s? Vous prenez d'abord Char à partir de Word1 et comparez avec tous les Word2 et que seconde char de Word1 < / code> avec tous depuis Word2 ...


Vous ne retournez rien quand 2 caractères sont égaux. Fondamentalement, vous pouvez effectuer ce qui suit: 1) Comparez les longueurs et si elles sont différentes de renvoi Faux 2) en boucle sur les caractères et comparez-les. Lorsque vous trouvez 2 caractères différents à l'index même , vous retournez false 3) Si vous atteignez la fin, les chaînes sont égales pour que vous puissiez revenir.


3 Réponses :


1
votes

Il n'y a pas besoin de deux boucles lorsque les deux cordes ont la même longueur. Il suffit également de revenir faux en cas d'inadéquation. Lorsque la boucle finira, cela signifie qu'il n'y avait pas de désactivation et true peut être retourné.


0 commentaires

6
votes

Deux problèmes avec votre code:
1. Pas besoin de double boucle, vous comparez chaque caractère sur le premier mot à chaque charcuter le second, c'est faux. Une boucle suffit et comparez Word1.charat (I) == Word2.Charat (I) Code>
2. Vous retournez true si le premier caractère est égal et ne continue pas au reste des mots. Le revenir true code> ne devrait venir qu'après la boucle de la boucle, comme terminé

public static boolean comparaStringhe(String word1, String word2) {
        if (word1.length() == word2.length()) {
            for(int i=0; i<word1.length(); i++) {
                    if(word1.charAt(i) != word2.charAt(i)) {
                        return false;
                    }
            }
            return true;
        }

        return false;
   }


0 commentaires

-1
votes

Vous retournez avant que le code ait une chance de passer à travers la chaîne entière.

retourner uniquement après la traversée de la chaîne entière. P>

for(int i=0; i<word1.length(); i++) 
{
    for(int j=0; j<word2.length(); j++) 
    {
        if(word1.charAt(i) == word2.charAt(j)) 
        {
            // return true; the code is not able to traverse through the whole string.
        } 
        else 
        {
            return false;
        }
    }
    return true; // The code has now traversed the whole string and can now say that the strings match. Thus return true.
}


1 commentaires

Pourquoi avez-vous deux boucles?