【发布时间】:2016-07-26 14:45:27
【问题描述】:
我在完成一项非常简单的任务时遇到了一些问题 - 我觉得我在这里遗漏了一些非常明显的东西。
我有一个分号分隔的 .csv 文件。在这个文件中有几个包含点的数字,比如“1.300”,但也有一些日期,比如“2015.12.01”。任务是查找并删除所有点,但只删除那些以数字表示且不是以日期表示的点。日期和数字是完全可变的,并且不会在文件中的相同位置。
我现在的问题是:处理这个问题的“最佳”方法是什么?
从程序员的角度来看:在每个半分符处拆分,计算点数,如果只有一个点,删除它是一个好的解决方案吗?这是解决我现在能想到的问题的唯一方法。
示例源文件:
2015.12.01;
13.100;
500;
1.200;
100;
示例结果:
2015.12.01;
13100;
500;
1200;
100;
【问题讨论】:
-
文件中能否有不同的日期格式,例如 YYYY.MM(没有天数)?
-
听起来你很可能想要一个正则表达式...
-
这不是删除字符,这是解析文本。这不是一件容易的事。顺便说一句为什么删除点?它们是完全有效的分隔符。您是否有不同的问题,例如尝试使用错误的文化解析数字?
-
这可能是一个有效的问题@Pan 如果大型导出出错并且该文件只剩下您了。
-
@Lunatiic 为什么?如果您使用奥地利语言环境(只是使用
.进行分组和日期分隔符的国家之一),您可以使用decimal.Parse("13.100",new System.Globalization.CultureInfo("de-at"))解析数字并获得13100