gpt4 book ai didi

java - CSV 文件中的值包含未加引号的逗号字符

转载 作者:行者123 更新时间:2023-11-30 07:48:31 24 4
gpt4 key购买 nike

我从客户那里得到了一个 CSV 文件,其中某些单元格包含多个逗号 (,)。所以在用逗号分隔后,某些单元格的值是错误的。

例子:对于 187,859,049 的单元格值,我得到 187。但我需要 187,859,049。

我的分隔逗号_的代码

        String line = "";

//Create the file reader
fileReader = new BufferedReader(new FileReader(readfileName));

//Read the CSV file header to skip it
fileReader.readLine();

//Read the file line by line starting from the second line
while ((line = fileReader.readLine()) != null) {
//Get all tokens available in line
String[] tokens = line.split(Constant.COMMA_DELIMITER);
if (tokens.length > 0) {
//Create a new student object and fill his data
ShareNumber shareNumber = new ShareNumber(tokens[Constant.Cell_0],tokens[Constant.Cell_1],tokens[Constant.Cell_2]);
shareNumberList.add(shareNumber);
}

我该如何解决这个问题?提前致谢。

最佳答案

首先也是最重要的 - 让您的客户不要在他们写入 CSV 文件的数字中加入逗号。

假设你不能那样做......

您需要能够使用有关实际数据的信息来区分“真实”和“假”逗号。具体来说,您可以使用以下信息:

  • 已知哪些字段包含数字
  • 值的范围是什么(例如,它总是超过 999 吗?那么只有 3 位数字长的“字段”实际上可能是比逗号更大的字段的一部分)
  • 该行的逗号总数; “假”逗号的数量是逗号数量 - (字段数量 - 1)。如果只有一个数字字段,那么这已经准确地告诉您哪些逗号是“假的”。

此外,这意味着您不是通过用逗号将其分开来开始处理一行,而是通过确定如何将其分开(例如,通过匹配其上的正则表达式)。或者,您可以先将其分解,但稍后需要统一数字的一些分解部分。

关于java - CSV 文件中的值包含未加引号的逗号字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49211329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com