将包含逗号的字符串输入到CSV文件中

8

我正试图输入到CSV文件中。
我的输入如下所示:
String string="hi,this is user";
但是当我输入到CSV文件中时,逗号被视为分隔符,并且被写入两个单元格。"hi"在一个单元格中,"this is user"在另一个单元格中。
但我希望整个字符串都在一个单元格中。
我该如何实现这个目标呢?
请帮帮我。

FileWriter writer = new FileWriter("D:/Workspace/Sample2.csv");
PrintWriter out = new PrintWriter(writer);

String names="[hasds,jash.jahd,jash]";
    out.append(names);
    out.flush();
}

你在使用某个库来完成这项工作吗?请向我们展示与此导入过程相关的代码。 - user800014
如果您没有使用库,您可以将字符串用引号括起来。这不是Java问题。 - Moritz Petersen
FileWriter writer = new FileWriter("D:/Workspace/Sample2.csv"); PrintWriter out = new PrintWriter(writer); String names="hi,this is user"; out.append(names); out.flush(); - user2243525
@user2243525 请编辑您的问题并在那里发布。 - Achintya Jha
请使用CSV库完成此任务。那些对文件格式一无所知,试图自己实现的程序员会给其他处理这些失败文件的程序员带来很多麻烦。他们甚至可能不得不使用正则表达式(太可怕了!)... - Tim Pietzcker
2个回答

33

由于您正在编写一个以逗号为分隔符的csv文件,而您的文本内容也恰好包含了一个逗号,所以您需要使用双引号将文本括起来。

String names = "\"hi,this is user\"";

注意:如果要用双引号包裹文本,您需要同样转义双引号!

更新:-一个示例代码片段,可将字符串用双引号包装。

public static void main(String[] args) {

    String test = "abcd";
    System.out.println(test); // prints abcd
    test = appendDQ(test);
    System.out.println(test); // prints "abcd"

}

private static String appendDQ(String str) {
    return "\"" + str + "\"";
}

"wrapped" - 以双引号(在字符串中)开头和结尾。 - Rahul
检查更新!将您的字符串传递给此方法,然后将其写入文件! - Rahul
如果字符串本身包含双引号,那么这些双引号也需要进行转义吗? - Joe F
据我所知,如果字符串包含双引号,那么它已经被转义了!如果我错了,请纠正我。 - Rahul
1997年,Ford,E350,“超级,”豪华“卡车”。 - Joe F
显示剩余2条评论

0

你必须确保数据被正确转义。逗号和双引号需要特殊处理。我强烈建议使用一个库来处理所有细节,为你正确转义csv数据。看一下opencsv


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接