1
votes

Remplacez le symbole $ dans String

Comment remplacer tous les "$$$" présents dans une chaîne?

J'ai essayé

story.replaceAll("$$$","\n")

Cela affiche un avertissement: Ancrer $ dans une position inattendue et le code ne fonctionne pas. Le code prend le symbole "$" comme ancre d'une expression régulière. J'ai juste besoin de remplacer ce symbole.

Y a-t-il un moyen de le faire?


3 commentaires

story.replaceAll ("\\ $ \\ $ \\ $", "\ n")


replaceAll est pour remplacer regex. essayez d'utiliser replace


$ signifie la fin de la String


4 Réponses :


2
votes

"$" est un caractère spécial pour les expressions régulières.

Essayez ce qui suit:

    System.out.println(story.replaceAll("\\$\\$\\$", "\n"));

Nous échappons au caractère "$" par un '\' entre le code ci-dessus.


3 commentaires

Si vous basez votre réponse sur un commentaire - mentionnez à tout le moins l'auteur du commentaire - stackoverflow.com/users/2970947/elliott- frisch


Ce n'était pas et je n'ai pas vu les commentaires avant de répondre.


Je vous suggère de jeter un coup d'œil dans le futur. C'est le premier commentaire sur l'OP (et le commentaire a été posté avant votre réponse)



1
votes

Vous pouvez remplacer tous les caractères spéciaux (au niveau des expressions régulières) en échappant à ce caractère par une barre oblique inverse. Comme les littéraux Java utilisent également la barre oblique inverse comme caractère d'échappement, vous devez échapper la barre oblique inverse elle-même.

story.replaceAll("\\${3}", something);

En utilisant {3} derrière le $ , dites-vous, qu'il devrait être trouvé exactement trois fois. Semble un peu plus élégant que "\\ $ \\ $ \\ $" . quelque chose est donc votre remplacement, par exemple "" ou \ n , selon ce que vous voulez.


0 commentaires

0
votes

cela fonctionnera sûrement ..

story.replaceAll("\\$\\$\\$","\n")

Vous pouvez le faire pour n'importe quel caractère spécial.


2 commentaires

Cette réponse était déjà fournie à la fois dans les commentaires du PO et en tant que réponse concrète avant la vôtre ......


@RannLifshitz, j'avais déjà tapé cette réponse et je faisais un peu de travail, puis j'ai soumis ... donc ça a été retardé. :-)



2
votes

Il existe plusieurs façons de procéder. Cela dépend de ce que vous voulez faire et de l'élégance de votre solution:

String replacement = "\n"; // The replacement string

// The first way: 
story.replaceAll("[$]{3}", replacement);

// Second way:
story.replaceAll("\\${3}", replacement);

// Third way:
story.replaceAll("\\$\\$\\$", replacement);


0 commentaires