Comment utiliser substring et indexOf pour une Chaîne avec des caractères répétés?
J'ai le texte suivant String myString="city(Denver) AND state(Colorado)";
Il a répétition "(" et ")"...
Comment puis-je récupérer le nom de l'etat, c'est à dire le Colorado. J'ai essayé le suivant:
String state = myString.substring(myString.indexOf("state(")+1,myString.indexOf(")"));
Mais il donne indexOutOfBoundException
Est-il un moyen de spécifier que j'ai besoin de la seconde "(" myString?
J'ai besoin de la suite: String state = "Colorado";
OriginalL'auteur Buras | 2013-05-26
Vous devez vous connecter pour publier un commentaire.
Utilisation
lastIndexOf
. Également augmenter le décalage initial pour permettre le nombre de caractères de la sous-chaînestate(
:"("
répéter plusieurs fois, par exemplemyString="abc(defg(h(i(k(o"
. Est-il possible de spécifier que j'ai besoin de la troisième"("
? Puis-je utiliser:myString.thirdIndexOf("("))
...probablement pas?Dans ce cas, vous devrez utiliser les indexOf(String, startIndex) bien entendu, vous aurait à l'emplacement de la 3ème ( en obtenant les indices de sous-chaînes, en utilisant à nouveau
indexOf(String, startIndex)
.OriginalL'auteur Reimeus
Vous pouvez utiliser les Regex.
OriginalL'auteur cat_minhv0
Vous pouvez simplement couper la corde vers le bas, et de le faire dans un sanboxed pièce. De cette façon, si il y a plus de fuite ")" rien de mauvais ne se passe
OriginalL'auteur Travis J
Vous pouvez utiliser d'autres version de String#indexOf(String str, int fromIndex) de spécifier à partir de quelle position vous voulez commencer la recherche
")"
.OriginalL'auteur Pshemo
Votre problème est la première occurrence de
")"
est avant l'apparition de"state("
, comme il apparaît également aprèsDenver
.Si vous avez besoin du dernier indice, vous pouvez utiliser
lastIndexOf()
, pour les deux"("
et")"
. Si vous avez besoin précisément de la deuxième occurrence, vous pouvez utiliser le version deindexOf()
qui vous permet de spécifier un index par où commencer la recherche, et définir l'indice de la seule après la première occurrence de votre char, Comme ceci:OriginalL'auteur anana