我有一个csv文件,其中包含5个字段,其中1个字段嵌入了换行符。我可以使用CSVReader[OpenCSV]完美地读取csv文件。尽管嵌入了换行符,但我也能够获得单独的字段。但我想写另一个csv文件,它以相同的方式包含所有字段,但只想忽略"嵌入的换行符",而不是传统的行末换行符。有人能告诉我怎样才能做到这一点吗?
我正在使用下面的代码,但不知何故,我仍然无法将"\n"替换为"。System.out.println(tempLine[0])的输出;仍然包含嵌入的换行符。
CSVReader reader = new CSVReader(new FileReader(INPUT_FILE), ',');
CSVWriter writer = new CSVWriter(new FileWriter(OUTPUT_FILE), ',');
String [] nextLine;
String [] tempLine = new String[1];
while ((nextLine = reader.readNext()) != null)
{
System.out.println("Tweet: " + nextLine[3] + "nSentiment: " + nextLine[4]);
tempLine[0] = nextLine[3].replace("\n", "");
System.out.println(tempLine[0]);
writer.writeNext(tempLine);
}
谢谢你的帮助!
读入一行后,检查每个字段并删除您找到的任何换行符。
String[] newFields = new String[fields.length];
i=0;
for (String field : fields)
{
newFields[i++] = field.replace("\n","");
}
然后使用OpenCSV写回newFields。
使用下面这样的util方法。稍微修改了@Jim Garrison的答案。将"\\n"改为""
private static String[] cleanNewLine(String[] fields) {
String[] newFields = new String[fields.length];
int i = 0;
for (String field : fields) {
if(field != null)
newFields[i] = field.replace("n", "");
i++;
}
return newFields;
}