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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
(String#replace(CharSequence, CharSequence)
.http://ideone.com/xPQqL
Hast du meinen code? Gibt es irgendetwas, was ich falsch mache?
Ich sehe es jetzt. Nein, ich sehe nicht, nichts sticht. Könnten Sie zusammen eine ideone Beispiel?
Mein code liest eine csv-Datei, die kann ich nicht bieten, bei ideone. Aber wenn Sie erstellen Sie eine csv-Datei (Komma als Trennzeichen), und stellen Sie die drei-Feld-Werte in eine Zeile, liest es den Inhalt gut, aber die zwei Anführungszeichen besteht
Ball habe ich aber das problem, es wurde eine andere Gruppe von char-Sequenz gegeben, die von csv nach Lesen...ich hatte zu konvertieren \\\"\" an \". Dank
InformationsquelleAutor Matt Ball
InformationsquelleAutor Bindumadhava