Comment remplacer les cordes qu'une seule fois, sans regex en Java?

J'ai besoin de remplacer une dynamique sous-chaîne dans une chaîne plus longue, mais une seule fois (premier match). La classe String fournit seulement replace(), qui remplace TOUTES les instances de la sous-chaîne; il y a un replaceFirst() méthode, mais il ne faut regexp au lieu d'un régulier de la chaîne. J'ai deux problèmes avec l'aide de regex:

1) mon sous-chaîne est dynamique, donc peut contenir des caractères bizarres qui signifie quelque chose d'autre dans la regex, et je ne veux pas traiter avec le personnage s'échapper.

2) ce remplacement se produit très souvent, et je ne suis pas sûr qu'en utilisant les regex aura un impact sur les performances. Je ne peux pas compiler l'expression régulière à l'avance depuis la regex est lui-même dynamique!

Je dois être en manque de quelque chose ici, car il me semble que c'est un très basique chose... Est-il un replaceFirst méthode prenant régulièrement chaîne ailleurs dans le java franework?

  • Votre deuxième préoccupation peut être valable, mais comme pour votre premier point: vous pouvez utiliser le Modèle.devis pour construire une regex qui va littéralement correspondent à une chaîne donnée. C'est, il va traiter avec le s'échapper pour vous.
InformationsquelleAutor polyglot | 2009-10-24