Bonjour,
comment faire pour vérifier qu'une string ne contient pas une autre?
Je sais que pour vérifier qu'elle une autre contient c'est
mais pour faire l'inverse...Code:(string.indexOf("string_recherchée") == -1)
Merci
Version imprimable
Bonjour,
comment faire pour vérifier qu'une string ne contient pas une autre?
Je sais que pour vérifier qu'elle une autre contient c'est
mais pour faire l'inverse...Code:(string.indexOf("string_recherchée") == -1)
Merci
:? J'ai pas tout compris à ton discours là. Ce que je peux te dire c'est que indexOf marche comme ça :
Et dans mon exemple, on passe donc dans le else avec l'indice à la valeur 0.Code:
1
2
3
4
5
6
7
8
9 String valeur1 = "toto"; String valeur2 = "to"; int resultat = valeur1 .indexOf(valeur2); if (resultat == -1) { System.out.println("valeur2 n'est pas contenu dans valeur1"); else { System.out.println("valeur2 est contenu dans valeur1 à l'indice " + resultat); }
ha oui ok merci ça va j'ai capté
Par contre j'ai un peu de mal avec les expressions régulière.
Je voudrais tester que ma string contient uniquement chiffres (\d), points (\.), ou les caractères correspondant aux caractères vides (\s)
ça se passe comment?
j'ai tenté ça
mais sans résultatCode:maString.indexOf("\\d+\\s+\\.+")
Donc ce n'est pas indexOf() qui t'intéresse au final mais plutôt les fonctions liées aux expressions régulières : matches(). La fonction indexOf n'est réservée qu'à l'utilisation d'un véritable mot et non une expression régulière.
Inspire toi de ça pour faire ton test.Code:taString.matches("\d+"); // te renverra true si ta String ne contient qu'un ou plusieurs chiffres
En effet matches(), replaceAll() et split() sont les seules méthodes de la classe String qui utilisent les expression régulière.
Je me suis mal exprimé. Pour ma première question c'était bien indexof qui intéressait.
Mais là l'histoire des chiffres c'est un autre problème, mon problème c'est plus pour combiner plusieurs caractères spéciaux dans la vérification
donc je cherche ceci
mais pour vérifier que c'est des chiffres, des points ou des caractères vides.Code:
1
2 taString.matches("\d+");
Bonjour,
Pour des chaînes de caractères pouvant contenir des chiffres, des points ou des caractères "espace" (tabulation, espace, retour à la ligne...) dans n'importe quel ordre, l'expression régulière suivante devrait convenir :"[\\d\\s\\.]+"
oui ça marche :d
merci beaucoup