我正在使用Apache POI api从一个字符串类型的单元格中获取数据,但该值由Alt + Enter分隔。
突出显示的文本是一个包含Alt + Enter值的单元格(显示为\ n)。我想读取此数据替换“\ n”或Alt + Enter with,然后使用该值 替换后我想要的输出\ n是:is,this,A,test
我使用的代码如下:
String data = cell.getStringCellValue();
System.out.println("output:"+data);
if(data.contains("\n")){
sb.append(data.replace("\n", ","));
}else{
sb.append(data);
}
//sb.append(myValue);
sb.append('|');
这里sb是我追加数据的stringbuffer。 然后将StringBuffer对象sb中的数据写入带有管道作为分隔符的csv文件。 请帮我解决这个问题。
答案 0 :(得分:0)
你做的几乎一切都正确。
\n
(LF),则存在CR + LF \r\n
,则\r
可能已被识别为记录终止符。我无法完全阅读你的描述是什么情况。
以下两点都有。并检查。
if (data.contains("\r")) {
System.out.println("CR found");
}
sb.append('\"')
.append(data.replace("\r?\n", ","));
.append('\"');
.append('|');
不需要if
,StringBuilder
比旧版StringBuffer
快一点。