我从客户端获得了一个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);
}
我该如何解决这个问题? 提前致谢。
答案 0 :(得分:3)
首先 - 让您的客户不要在他们写入CSV文件的数字中加入逗号。
假设你做不到......
您需要能够使用“假”逗号区分“真实” - 使用有关实际数据的信息。具体来说,您可以使用以下信息:
此外,这意味着您不是通过逗号分解来开始处理行,而是通过确定如何分解它(例如通过匹配它上面的正则表达式)。或者,你可以先打破它,但后来需要统一一些破碎的数字部分。
答案 1 :(得分:0)
答案 2 :(得分:0)
我读了上面的所有答案。我认为,这种奇怪的问题一般是由于客户端的文件问题而发生的。它浪费了很多开发人员的时间。因此,开发人员应始终尽量严格要求客户解决此类问题。