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 comparant les mots suivants: sortie réelle: Sortie attendue:
1. Test - test /
2. Test - test /
3. Test - test /
4. Testez le test p>
1. VRAI
2. Faux
3. VRAI
4. True p>
1. VRAI
2. Faux
3. Faux
4. FALSE P> P>
3 Réponses :
Il n'y a pas besoin de deux boucles lorsque les deux cordes ont la même longueur. Il suffit également de revenir faux code> en cas d'inadéquation. Lorsque la boucle finira, cela signifie qu'il n'y avait pas de désactivation et
true code> peut être retourné. P>
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;
}
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. }
Pourquoi avez-vous deux boucles?
Vous ne devriez pas retourner
true code> lorsque les premiers personnages correspondent, vous devez continuer à regarder le reste. Aussi, pas besoin de comparer des caractères pour
i! = J code> (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 code> s? Vous prenez d'abord
Char code> à partir de
Word1 code> et comparez avec tous les
Word2 code> et que seconde
char code> de
Word1 < / code> avec tous depuis
Word2 code> ...
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 i>, vous retournez false 3) Si vous atteignez la fin, les chaînes sont égales pour que vous puissiez revenir.