How to replace two double quotes with a single double quote in Java String?

java

Solution

Use `String#replace(CharSequence, CharSequence)`.

String input = "this string \"\"has\"\" double quotes";
String output = input.replace("\"\"", "\"");

http://ideone.com/xPQqL

Problem

I am reading a CSV file and have some values like ``` field 1 field 2 field 3 1 test case1 expecting one, and \"two\", and three ``` after reading file into a `StringBuilder` and converting `toString()` I split the file content by: `string.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)");`. On iterating the string I get these values:- ``` 1 test case1 expecting one, and ""two"", and three ``` How I can I replace two double quotes with single double like this "two" here is my code:- ``` import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class csvStringParser { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { // TODO Auto-generated method stub String path = "E:/spc.csv"; String read = readFile(path); System.out.println("content of the file before \" = \n" +read); // System.out.println("content of the file after= \n" +read); String[] tokens = read.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)"); for(int i = 0;i<tokens.length;i++) { String abc = tokens[i].replace("\"\"", "\""); // if(abc.length()>2){ if(abc.startsWith("\"") && abc.endsWith("\"")){ abc = abc.substring(1, abc.length()-1); } // } System.out.println("> "+abc); } } public static String readFile( String file ) throws IOException { BufferedReader reader = new BufferedReader( new FileReader (file)); String line = null; StringBuilder stringBuilder = new StringBuilder(); String ls = System.getProperty("line.separator"); while( ( line = reader.readLine() ) != null ) { stringBuilder.append( line ); stringBuilder.append( ls ); } return stringBuilder.toString(); } } ```

Original source