Gewusst wie: ersetzen Sie zwei Anführungszeichen mit einem einzelnen Anführungszeichen in Java-String?

Ich lese eine CSV-Datei und einige Werte haben wie

field 1   field 2           field 3
1        test case1         expecting one, and \"two\", and three

nach Lesen der Datei in eine StringBuilder und konvertieren toString() ich split der Inhalt der Datei von: string.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)");.

Auf Durchlaufen der string bekomme ich diese Werte:-

1
test case1
expecting one, and ""two"", and three

Wie kann ich ersetzen Sie zwei doppelte Anführungszeichen mit Einzel-Doppel -, wie diese "zwei"

hier ist mein 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();
    }

}

InformationsquelleAutor user1371033 | 2012-08-09

Schreibe einen Kommentar