[英]Double Quote not close Java
J 有 CSV 文件第一行是这样的:
LOC;11000;"授权"有效";10;;
当我尝试用 CSVReader 阅读它时,我只有这个:
本地地址;11000
我知道问题出在双引号上,我该怎么做才能删除 CSV 上的所有双引号?
我尝试替换方法是 dosnt 工作。
我的代码是:
while ((line = reader.readNext()) != null) {
for(int i = 0; i<line.length; i++) {
if (line[i].contains("\"")){
line[i] = line[i].replace("\"", ""); // same result with replaceAll method
}
System.out.print(line[i]+" ");
}
}
谢谢你。
正如 Brendan 所提到的,“ if (line[i].contains("""))){" 行是多余的。查找和替换方法无论如何都会扫描文本,您不需要执行两次。
您的替换语句有效,我试过了,但这不是问题所在:
jshell> var text = "LOC;11000;\"Autorisation \"valide\";10;;";
text ==> "LOC;11000;\"Autorisation \"valide\";10;;"
jshell> text.contains("\"")
$2 ==> true
jshell> text.replace("\"","");
$3 ==> "LOC;11000;Autorisation valide;10;;"
请注意,该行不是列表/可迭代的,它是一个字符串,因此您可以在线替换它。
while ((line = reader.readNext()) != null) {
line = line.replaceAll("[\"\\\\]","");
System.out.print(line);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.