Palindrome
Résolu
haikei00X
Messages postés
67
Date d'inscription
Statut
Membre
Dernière intervention
-
haikei00X Messages postés 67 Date d'inscription Statut Membre Dernière intervention -
haikei00X Messages postés 67 Date d'inscription Statut Membre Dernière intervention -
3 réponses
Bonjour,
Tu fais du Java ici, pas du C.
De plus en Java il est faux de faire
Attention aussi à ton
Regarde la documentation de String et éventuellement de StringBuilder
Tu fais du Java ici, pas du C.
chinv.equals(ch)sera toujours faux car
chinvest un
char[]et
chun
String, ce n'est pas comparable.
De plus en Java il est faux de faire
chinv[ls]= '\0', l'inverse de "radar\0" c'est "\0radar".
Attention aussi à ton
new char[6];il n'y a vraiment aucune raison de mettre un 6 en dur ici, tu vas avoir des erreurs si tu mets un mot plus long...
Regarde la documentation de String et éventuellement de StringBuilder
Merci KX d'avoir lu mon code.
Je voulais savoir s'il y a moyen de comparer sans avoir à changer le type char, par exemple effectuer une conversion. Si non qu'est ce que je peux faire pour que ça marche.
J'ai essayé d'enlever la taille que j'ai mis en dur j'ai eu l'erreur suivante :
Variable must provide either dimension expressions or an array initializer
Est-ce que vous pouvez m'expliquer plus?
Merci ^^
Je voulais savoir s'il y a moyen de comparer sans avoir à changer le type char, par exemple effectuer une conversion. Si non qu'est ce que je peux faire pour que ça marche.
J'ai essayé d'enlever la taille que j'ai mis en dur j'ai eu l'erreur suivante :
Variable must provide either dimension expressions or an array initializer
Est-ce que vous pouvez m'expliquer plus?
Merci ^^
Déjà il faut désapprendre le C, en Java il faut penser objet, donc normalement tu n'as pas à manipuler directement le char[] mais tu utilises les méthodes de la classe String.
Alors effectivement tu pourrais faire comme ceci :
Mais c'est assez lourd parce que ça oblige à recopier plusieurs fois le tableau des caractères.
Il vaut mieux faire toutes tes comparaisons avec charAt(i) directement sur le String.
Par exemple :
Alors effectivement tu pourrais faire comme ceci :
char[] chInv = ch.toCharArray(); ... String strInv = new String(chInv); if (strInv.equals(ch)) ...
Mais c'est assez lourd parce que ça oblige à recopier plusieurs fois le tableau des caractères.
Il vaut mieux faire toutes tes comparaisons avec charAt(i) directement sur le String.
Par exemple :
if (ch.charAt(i) != ch.charAt(ch.length()-i) return false;