【问题标题】:String containing comma inputting in to the csv file包含逗号输入到 csv 文件的字符串
【发布时间】:2013-04-19 11:08:52
【问题描述】:

我正在尝试输入 csv 文件。
我的输入如下图
String string="你好,这是用户";
但是当我输入 csv 文件时,逗号被视为分隔符,它被写入两个单元格。一个单元格中的“hi”和另一个单元格中的“这是用户”。
但我希望整个字符串都在一个单元格中。
我怎样才能做到这一点。
请帮帮我。

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

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

【问题讨论】:

  • 您是否使用一些库来完成这项工作?向我们展示此导入过程的相关代码。
  • 如果您不使用库,您可以将字符串括在引号中。不是 Java 问题。
  • FileWriter writer = new FileWriter("D:/Workspace/Sample2.csv"); PrintWriter out = new PrintWriter(writer);字符串名称=“嗨,这是用户”; out.append(名字); out.flush(); }
  • @user2243525 编辑您的问题并将其发布到那里。
  • 为此任务使用 CSV 库。不知道文件格式如何工作并尝试推出自己的实现的程序员是造成其他程序员头痛的原因,他们不得不处理这些不明智的尝试所产生的混乱文件。他们甚至可能不得不求助于使用正则表达式(太可怕了!)...

标签: java csv


【解决方案1】:

由于您正在编写一个带有comma 分隔符的csv 文件,并且您的文本中也恰好有一个comma,因此您需要将您的文本用双引号.

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

注意,要将文本用双引号括起来,您还需要转义双引号!

更新:-示例代码 sn-p 将您的字符串包含在双引号中。

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 + "\"";
}

【讨论】:

  • 你的意思是,字符串必须附加双引号??
  • 包装 - 以双引号开始和结束(在字符串中)。
  • 检查更新!将您的字符串传递给此方法,然后将其写入文件!
  • 但那些双引号不应该在我的字符串中
  • 如果字符串本身包含双引号,是不是也需要转义?
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2023-03-05
    • 2018-03-20
    • 2013-07-29
    • 2016-04-15
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 2013-05-31
    相关资源
    最近更新 更多