8
votes

Java string.replaceFirst () qui prend un argument "à partir de"

J'ai besoin de remplacer un mot dans une chaîne ressemblant à "Duh Duh quelque chose d'autre duh". Je n'ai besoin que de remplacer le deuxième "duh", mais les premiers et les derniers doivent rester intacts, alors remplacer () et remplacerFirst () ne fonctionnent pas. Existe-t-il une méthode comme remplacementFirst (String Regex, Remplacement de chaîne, Int Offset) qui remplacerait la première occurrence du remplacement à partir du décalage, ou peut-être que vous recommanderiez une autre façon de résoudre ce problème? Merci!


0 commentaires

3 Réponses :


4
votes

va ressembler à ce travail? XXX

Si vous souhaitez simplement remplacer la deuxième occurrence d'un motif dans une chaîne, vous n'avez vraiment pas besoin de "à partir de" calcul de l'index.

comme bonus, si vous souhaitez remplacer tous les autres DUH (c'est-à-dire seconde, quatrième, sixième, etc.), puis invoquer remplaille au lieu de remplafirstt .


6 commentaires

Le remplacement ne remplacera pas tous les autres DUH, puisqu'il ne redémarre pas à chaque fois. Il va réellement donner 1duh2blehduh3bleh


Qui remplace tous les autres duh comme je l'ai dit!


"C'est une confiture tous les deux jours; aujourd'hui n'est pas un autre jour, tu sais."


Il h. J'ai interprété "tous les autres duh" comme "tous les autres DUHS", plutôt que "alternatif duhs"


Pour la clarté des sceptes, laissez-moi vous reformuler en disant que de remplacement dans ma solution remplacerait le 2e, 4ème, 6ème, ... survenue du motif.


Les gars, c'est bien cool, mais mon cas est un peu différent. En fin de compte, je dois remplacer, disons, tous les Duh avec les autres, puis tout le reste avec quoi que ce soit, mais pas l'autre qui était auparavant duh. Donc, je suis itération sur la chaîne en prenant un mot à la fois et en le remplaçant.



2
votes

12
votes

Qu'en est-il de quelque chose comme ceci: xxx

juste 1 ligne de code ... pas une méthode entière.


0 commentaires