如何在Java String中用单个双引号替换两个双引号?

我正在读取CSV文件,并且有一些值,例如

field 1   field 2           field 3

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

StringBuilder将文件读取为并转换后,toString()我将文件内容分割为:string.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)");

在迭代字符串时,我得到以下值:

1

test case1

expecting one, and ""two"", and three

如何将两个双引号替换为像这样的“双”的单双

这是我的代码:-

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();

}

}

回答:

使用String#replace(CharSequence,

CharSequence)

String input = "this string \"\"has\"\" double quotes";

String output = input.replace("\"\"", "\"");

http://ideone.com/xPQqL

以上是 如何在Java String中用单个双引号替换两个双引号? 的全部内容, 来源链接: utcz.com/qa/423333.html

回到顶部