我遇到了一个相当简单的任务的问题——我感觉我很明显地错过了什么。
我有一个分号分隔的.csv文件。在这个文件中有几个包含点“1.300”的数字,但也包括日期,比如“2015.12.01”。任务是查找并删除所有点,但仅限于数字而不是日期。日期和数字完全可变,从未在文件中的同一位置。
现在我的问题是:如何处理这个问题才是最好的方法?
从程序员的角度来看:只需在每个分号处拆分,计算点数,如果只有一个点,则删除它,这是我目前能想到的解决问题的唯一方法。
示例源文件:
我有一个分号分隔的.csv文件。在这个文件中有几个包含点“1.300”的数字,但也包括日期,比如“2015.12.01”。任务是查找并删除所有点,但仅限于数字而不是日期。日期和数字完全可变,从未在文件中的同一位置。
现在我的问题是:如何处理这个问题才是最好的方法?
从程序员的角度来看:只需在每个分号处拆分,计算点数,如果只有一个点,则删除它,这是我目前能想到的解决问题的唯一方法。
示例源文件:
2015.12.01;
13.100;
500;
1.200;
100;
示例结果:
2015.12.01;
13100;
500;
1200;
100;
decimal.Parse("13.100",new System.Globalization.CultureInfo("de-at"))
解析数字并获得13100
。 - Panagiotis Kanavosen-gb
,或者将数据加载为de-at
,然后导出为en-gb
。尝试仅解析某些字段需要一些非常精确的正则表达式。例如,;\d+\.\d+;
无法处理百万或小数。您可以尝试搜索;(\d+)\.(\d{3});
,并替换为$1$2
。 - Panagiotis Kanavos