java—如果文件中的数据包含分隔符,该怎么办(ç) 价值观

tyg4sfes  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(218)

我需要导入批量文件,分析数据并生成报告。这些文件中有3种类型的数据。对于每种类型的数据,都有不同的布局。
卖家详细信息
salesperson数据的格式为id 001,行的格式如下:
001ç公积金ç名称ç薪水
客户数据
客户数据的格式为id 002,行的格式如下:
002ç法人税号ç名称ç业务领域
销售数据
销售数据的格式为id 003。在销售行中,有一个项目列表,它被方括号[]包围。该行的格式如下:
003ç销售idç [项目id项目数量项目价格]ç业务员姓名
样本数据
以下是系统应该能够读取的数据示例。
001ç1234567891234ç佩德罗ç50000
001ç3245678865434ç保罗ç40000.99
002ç2345675434544345ç何塞·达席尔瓦ç农村的
002ç2345675433444345ç爱德华多佩雷拉ç农村的
003ç10ç [1-10-100,2-30-2.50,3-40-3.10] ç佩德罗
003ç08ç [1-34-10,2-33-1.50,3-40-0.10] ç保罗
当字段值​​包含分隔符(ç)?
例子:
001ç1234567891234ç阿松çãoç50000

uxhixvfz

uxhixvfz1#

我不知道你说得“做”点什么是什么意思。
但是处理使用 ç 作为分隔符。前提是 ç 仅用作分隔符。
如果您正在使用 String.split ,您可以使用 "ç" 作为分隔符regex。
如果您正在使用 Scanner ,您可以包括 "ç" 在分隔符中。
一个典型的csv阅读器库将;允许您使用 "ç" 作为字段分隔符。。。而不是 "," .
也有可能 ç 实际上表示其他内容,用于写入文件的字符集/编码与用于读取文件的字符集/编码不匹配。
使用它不是一个好主意 ç 作为分隔符。而c+cedila主要用于非英语文本(参见https://en.wikipedia.org/wiki/%c3%87),你偶尔会在英文文本中看到它。如果将其用作分隔符,则有可能发生冲突。。。如果文件格式没有引用或转义分隔符的语法,则可能会出现问题。
这就导致了:
当字段值​​包含分隔符(ç)?
然后:
文件语法中需要引用或转义方案。
如果没有,则文件语法不明确。
如果语法不明确,就没有简单的方法来解析文件(您需要一个在所有实际例子中都有效的消歧启发式方法。您可能需要一个手工构建的解析器来实现启发式。)
如果不能通过启发式解决歧义,则需要更改文件语法;e、 g.添加转义/引用支持,或使用其他分隔符。

相关问题