如何在java中从csv文件的特定字段中删除逗号
我下面的代码正在打印包含数据的列。我试着将如何在java中从csv文件的特定字段中删除逗号,java,apache-stringutils,Java,Apache Stringutils,我下面的代码正在打印包含数据的列。我试着将escapeCsv方法放入StringEscapeUtils中,但名称列中仍然没有逗号 builder.append(“代码、代码名、代码部门”); append(System.lineSeparator()); Set entrySet=sorted.entrySet(); for(条目:entrySet) { append(entry.getKey()); 生成器。追加(“,”); append(entry.getValue().getCodeNam
escapeCsv
方法放入StringEscapeUtils
中,但名称列中仍然没有逗号
builder.append(“代码、代码名、代码部门”);
append(System.lineSeparator());
Set entrySet=sorted.entrySet();
for(条目:entrySet)
{
append(entry.getKey());
生成器。追加(“,”);
append(entry.getValue().getCodeName());
StringEscapeUtils.escapeCsv(entry.getValue().getCodeName());
生成器。追加(“,”);
append(entry.getValue().getCodeDepartment());
}
看起来您没有使用escapeCsv
的结果。您应该尝试以下方法:
builder.append(StringEscapeUtils.escapeCsv(entry.getValue().getCodeName()));
此外,如注释中所述,这不会删除逗号-它将用双引号括住字符串,这对于CSV中带逗号的字符串是正确的。来自:“如果值包含逗号、换行符或双引号,则返回的字符串值用双引号括起来”。它不会删除逗号。这不起作用:
.getCodeName().replace(“,”,”)
?我试过了,但名称列中仍然没有完整的名称。它现在在另一列(CodeDepartment)中被双引号包围。您可能需要仔细检查所有条目。您的原始代码首先打印了名称列,然后试图转义它-您是否仍同时打印entry.getValue().getCodeName()
和StringEscapeUtils.escapeCsv(entry.getValue().getCodeName())
?您应该只打印后者。