Compraison de chaines, erreur de débutant je pense [JAVA] - Java - Programmation
Marsh Posté le 21-04-2004 à 15:58:11
Ba là, faut lire la doc :
Citation : |
Donc tu peux pas comparer 2 chaînes comme ça. Tu compares 2 chaînes avec la méthode equals().
Mate bien la javadoc hein, ça résoud la plupart des problèmes, en général
Marsh Posté le 21-04-2004 à 16:03:43
OK, désolé, je me disais que equals, c'était que pour si les chaines était parfaitement egale. Bon, ben désolé pour le dérangement.
Marsh Posté le 21-04-2004 à 16:08:16
Ah non, autant pour moi, j'avais pas bien lu ton truc
Donc tu peux utiliser indexOf() pour ton type de recherche.
Marsh Posté le 21-04-2004 à 16:13:44
Titalium a écrit : OK, je vais tester |
Pour des trucs plus compliqués, pour savoir si ta chaîne répond à plusieurs conditions à la fois. Genre pour vérifier si la chaîne est un email valide, par exemple.
Marsh Posté le 21-04-2004 à 16:17:07
OK d'accord, merci pour le coup de main
J'ai remplacé mes matches() par indexOf(), et ça tourne comme je veux. Forcément c'est nettement plus efficace comme ça...
Marsh Posté le 21-04-2004 à 17:21:35
et en remplaçant indexOf() par startWith() ? ça serait pas encore mieux ?
http://java.sun.com/j2se/1.4.2/doc [...] ng.String)
et lire le manuel de temps-en temps ?
Marsh Posté le 21-04-2004 à 17:27:07
nraynaud a écrit : et en remplaçant indexOf() par startWith() ? ça serait pas encore mieux ? |
Oui mais startsWith() c'est bien uniquement pour quand ça "commence par", comme son nom l'indique. Stu veux savoir si une chaîne est présente dans une autre (comme je pense que c'est son cas), c'est plutôt indexOf()
Marsh Posté le 21-04-2004 à 18:52:38
Taiche a écrit : Oui mais startsWith() c'est bien uniquement pour quand ça "commence par", comme son nom l'indique. Stu veux savoir si une chaîne est présente dans une autre (comme je pense que c'est son cas), c'est plutôt indexOf() |
ah bon, ok. On est pas sur le même besoin.
Marsh Posté le 22-04-2004 à 08:23:48
nraynaud a écrit : et en remplaçant indexOf() par startWith() ? ça serait pas encore mieux ? |
Pour startWith(), non ça va pas pour ce que je dois faire. Merci quand même.
Et lire le manuel, je l'ai fait, c'est bon. J'utilisais une fonction en JavaScript qui s'appelait match() et qui faisait ça. Quand j'ai trouvé matches() en Java, j'ai matté la doc, ça me semblais assez proche (sauf que c'est pas avec une chaine c'est avec une expression regulière), donc ça m'a induit en erreur. C'est pas parce qu'on pose une question con qu'on y met pas du sien...
Marsh Posté le 22-04-2004 à 08:44:02
Titalium a écrit : Pour startWith(), non ça va pas pour ce que je dois faire. Merci quand même. |
c pas mal ca. j'aprecie
Marsh Posté le 22-04-2004 à 13:18:33
neogally a écrit : c pas mal ca. j'aprecie |
Ben il me semble que c'est pas dénué de sens... La doc, je l'ai lu et je pensais avoir trouvé ma fonction adéquate avec mon matches(). Or j'avais pas le résultat que je voulais, donc je me suis tourné vers le forum. Par contre, je comprend complètement que pour des types qui maîtrisent bien le langage, ma question puisse paraître idiote.
Donc : j'y ai bien mis du mien (j'ai dans le doc, j'ai fais pas mal de tests, etc...) et malgré tout j'ai posé une question à la con par ce que j'étais bloqué. CQFD.
Là je suis en train de me poser d'autres question, mais je cherche encore dans la doc un moment avant de demander
Marsh Posté le 21-04-2004 à 15:56:24
voici un bout de code très simple :
Et bien le résultat de ceci est :
J'avoue que je ne comprend pas du tout pourquoi logiquement l'une des deux (la première je pense) devrait renvoyer true non ? C'est quoi mon erreur là, je coince dessus comme un idiot
Message édité par Titalium le 21-04-2004 à 15:57:05