Replace all double quotes within String

JavaRegex

Java Problem Overview


I am retrieving data from a database, where the field contains a String with HTML data. I want to replace all of the double quotes such that it can be used for parseJSON of jQuery.

Using Java, I am trying to replace the quotes using..

details.replaceAll("\"","\\\"");
  //details.replaceAll("\"","&quote;"); details.replaceAll("\"","&#34");

The resultant string doesn't show the desired change. An O'Reilly article prescribes using Apache string utils. Is there any other way??

Is there a regex or something that I could use?

Java Solutions


Solution 1 - Java

Here's how

String details = "Hello \"world\"!";
details = details.replace("\"","\\\"");
System.out.println(details);               // Hello \"world\"!

Note that strings are immutable, thus it is not sufficient to simply do details.replace("\"","\\\""). You must reassign the variable details to the resulting string.


Using

details = details.replaceAll("\"","&quote;");

instead, results in

Hello &quote;world&quote;!

Solution 2 - Java

Would not that have to be:

.replaceAll("\"","\\\\\"")

FIVE backslashes in the replacement String.

Solution 3 - Java

I think a regex is a little bit of an overkill in this situation. If you just want to remove all the quotes in your string I would use this code:

details = details.replace("\"", "");

Solution 4 - Java

To make it work in JSON, you need to escape a few more character than that.

myString.replace("\\", "\\\\")
    .replace("\"", "\\\"")
    .replace("\r", "\\r")
    .replace("\n", "\\n")

and if you want to be able to use json2.js to parse it then you also need to escape

   .replace("\u2028", "\\u2028")
   .replace("\u2029", "\\u2029")

which JSON allows inside quoted strings, but which JavaScript does not.

Solution 5 - Java

I know the answer is already accepted here, but I just wanted to share what I found when I tried to escape double quotes and single quotes.

Here's what I have done: and this works :)

to escape double quotes:

    if(string.contains("\"")) {
		string = string.replaceAll("\"", "\\\\\"");
	}

and to escape single quotes:

    if(string.contains("\'")) {
	    string = string.replaceAll("\'", "\\\\'");
    }

PS: Please note the number of backslashes used above.

Solution 6 - Java

This is to remove double quotes in a string.

str1 = str.replace(/"/g, "");
alert(str1);

Solution 7 - Java

String info = "Hello \"world\"!";
info = info.replace("\"", "\\\"");

String info1 = "Hello "world!";
info1 = info1.replace('"', '\"').replace("\"", "\\\"");

For the 2nd field info1, 1st replace double quotes with an escape character.

Solution 8 - Java

The following regex will work for both:

  text = text.replaceAll("('|\")", "\\\\$1");

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMalTecView Question on Stackoverflow
Solution 1 - JavaaioobeView Answer on Stackoverflow
Solution 2 - JavamikhailgarberView Answer on Stackoverflow
Solution 3 - JavaanonView Answer on Stackoverflow
Solution 4 - JavaMike SamuelView Answer on Stackoverflow
Solution 5 - JavaShrikant BallalView Answer on Stackoverflow
Solution 6 - JavaLakshmana Kumar DView Answer on Stackoverflow
Solution 7 - Javapriti negiView Answer on Stackoverflow
Solution 8 - JavaelxalaView Answer on Stackoverflow