上一节中讲了如果写入字段中只含有逗号,则在写入时将整个写入的字符串加双引号即可。
1)如果写入的字段中只有双引号会是什么情况?比如要写入detail2
//定义一个写入csv文件的地址
String filePath1 = "D://xntest//result.csv";
//定义一个写入的字段
String detail1="你好,jmeter";
String detail2="学\"jmeter\"呀";
//String detail3="你好,\"jmeter\"呀!";
//创建写入对象
FileWriter fw=new FileWriter(filePath1,true);
BufferedWriter bw=new BufferedWriter(fw);
//bw.write(detail1+"\n");
//逗号处理
//bw.write("\""+detail1+"\""+"\n");
//含有双引号
bw.write(detail2+"\n");
bw.flush();
fw.close();
执行结果如下,没有问题
2)如果写入的字段中即含有逗号,又含有双引号如何?比如detail3
//定义一个写入csv文件的地址
String filePath1 = "D://xntest//result.csv";
//定义一个写入的字段
String detail1="你好,jmeter";
//String detail2="学\"jmeter\"呀";
String detail3="你好,\"jmeter\"呀!";
//创建写入对象
FileWriter fw=new FileWriter(filePath1,true);
BufferedWriter bw=new BufferedWriter(fw);
//bw.write(detail1+"\n");
//逗号处理
//bw.write("\""+detail1+"\""+"\n");
//含有双引号
//bw.write(detail2+"\n");
//即有双引号又有逗号
bw.write(detail3+"\n");
bw.flush();
fw.close();
从结果树中看出,逗号的存在分成了两列,并且原本jmeter有双引号的也没有了
解决方案:
既然逗号要加双引号写入,先加一个双引号看下效果。结果没有分割,双引号的位置不对了。
bw.write("\""+detail3+"\""+"\n");
怎么办?讲一个诀窍
如果字段中有逗号(,),该字段使用双引号(”)括起来;
如果该字段中有双引号,该双引号前要再加一个双引号,然后把该字段使用双引号括起来。
所以在我们已知有双引号的情况下,先在双引号前再加一个双引号,如字段detail4,在jmeter有双引号下再增加一个双引号
//定义一个写入csv文件的地址
String filePath1 = "D://xntest//result.csv";
//定义一个写入的字段
String detail1="你好,jmeter";
//String detail2="学\"jmeter\"呀";
String detail3="你好,\"jmeter\"呀!";
String detail4="你好,\"\"jmeter\"\"呀!";
//创建写入对象
FileWriter fw=new FileWriter(filePath1,true);
BufferedWriter bw=new BufferedWriter(fw);
//bw.write(detail1+"\n");
//逗号处理
//bw.write("\""+detail1+"\""+"\n");
//含有双引号
//bw.write(detail2+"\n");
//即有双引号又有逗号
//bw.write(detail3+"\n");
bw.write("\""+detail3+"\""+"\n");
bw.write("\""+detail4+"\""+"\n");
bw.flush();
fw.close();
执行后的结果
-------------------------------------------------------------------------------
如果觉得我的文章对您有用,请收藏+关注,您的支持是我坚持的动力!