如何在 CSV 阅读器中使用 2 个字符作为分隔符
How use 2 char as separator on CSVreader
我希望人们在我的数据库中上传 CSV,但有些人使用 ,
作为 separator/delimiter,有些人使用 ;
.
有没有简单的解决方案?
CSVReader csvReader = new CSVReader(new InputStreamReader(inputStream), ';', '"', 1);
如果您希望别人向您发送文件,您应该要求他们使用您决定的格式,并警告他们任何其他格式都将被忽略。并通过优雅地报告错误而不是崩溃来确保您正确处理无效格式...
我建议您将用户重定向到 appropriate RFC 4180, in case they want to be fully compliant with the CSV 标准。
如果你愿意,你可以添加一个选项,让他们输入他们在上传文件时使用的分隔符(并确保你处理他们输入错误或故意输入错误的情况)。
如果你再好一点,你可以阅读第一行并尝试使用不同的常用分隔符(<space>
、\t
、,
、;
、. ..) 然后选择给你最多代币的那个。
无论何时处理用户输入,您都必须付出大量努力(和代码)来验证每个 corner-case。
我希望人们在我的数据库中上传 CSV,但有些人使用 ,
作为 separator/delimiter,有些人使用 ;
.
有没有简单的解决方案?
CSVReader csvReader = new CSVReader(new InputStreamReader(inputStream), ';', '"', 1);
如果您希望别人向您发送文件,您应该要求他们使用您决定的格式,并警告他们任何其他格式都将被忽略。并通过优雅地报告错误而不是崩溃来确保您正确处理无效格式...
我建议您将用户重定向到 appropriate RFC 4180, in case they want to be fully compliant with the CSV 标准。
如果你愿意,你可以添加一个选项,让他们输入他们在上传文件时使用的分隔符(并确保你处理他们输入错误或故意输入错误的情况)。
如果你再好一点,你可以阅读第一行并尝试使用不同的常用分隔符(<space>
、\t
、,
、;
、. ..) 然后选择给你最多代币的那个。
无论何时处理用户输入,您都必须付出大量努力(和代码)来验证每个 corner-case。