Java remplacer problèmes avec ' (apostrophe/single quote) et \ (barre oblique inverse) ensemble

Me semble avoir des problèmes. J'ai une chaîne de requête qui a des valeurs qui peuvent contenir des guillemets simples. Cela permettra de briser la chaîne de requête. J'essayais donc de faire remplacer pour modifier ' à \'.

Voici un exemple de code:

"This is' it".replace("'", "\'");

La sortie de ce est toujours:

"This is' it".

Il pense que je suis juste en faisant un caractère d'échappement pour la citation.

J'ai donc essayé ces deux morceaux de code:

"This is' it".replace("'", "\\'");  //\\ for the backslash, and a ' char
"This is' it".replace("'", "\\\'"); //\\ for the backslash, and \' for the ' char

À la fois de ce qui précède TOUJOURS les résultats dans la même sortie:

"This is' it"

Je ne peux que semblent de ce fait cracher un slash avec:

"This is' it".replace("'", "\\\\'");

Qui se traduit par:

"This is\\' it"

Des suggestions? Je veux juste remplacer un ' avec \'.

Il ne semble pas comme il doit être difficile.

  • Avez-vous fait une faute de frappe? Je ne vois pas de différence entre les deux derniers extraits de code, et le second, les résultats semblent être ce que vous voulez.
  • "J'ai une chaîne de requête" - tu veux dire une chaîne de requête SQL? Si oui, utiliser PreparedStatements et des requêtes paramétrées. Alors vous ne avez pas à traiter avec l'échappement de ces caractères sur votre propre.
  • Je suis avec jwodder sur cette. Ce que vous voulez et ce que vous obtenez semblent être les mêmes.
InformationsquelleAutor derekmw | 2011-06-06