【问题标题】:How to process txt with comma delimiter that also has comma as the thousands separator?如何处理带有逗号分隔符的txt,它也有逗号作为千位分隔符?
【发布时间】:2017-11-22 14:20:49
【问题描述】:

文本示例:

门诊就诊 4,私人,1,1,0,60,0,0
门诊就诊 4,Private,1,1,0,"1,260",0,0

目前我只是像这样分隔字符串:

std::stringstream ss(checkLine);

        getline(ss, something, ',');
        getline(ss, somethingElse, ',');
        getline(ss, somethingElse1, ',');
        getline(ss, somethingElse2, ','); 
        getline(ss, somethingElse3, ','); 
        getline(ss, somethingElse4, ','); 
        getline(ss, somethingElse5, ','); 
        getline(ss, somethingElse6, ',');   

我这样做的方式适用于第一行文本,但当涉及到第二行时,那就是废话了。不止2行,还有很多行

我需要将字符串的每个已解析部分存储到其自己的字符串中。如何使用逗号作为分隔符并使用逗号作为千位分隔符处理数字?

【问题讨论】:

  • 你唯一需要做的就是用逗号替换空格!
  • @strpeter :您建议的副本将(以python表示法)'a "b c"' 转换为['a', '"b', 'c"'],OP 想要['a', '"b c"']
  • @MartinBonner:我反过来理解了这个问题。

标签: c++


【解决方案1】:

您可以使用序列", " 作为分隔符。通过在逗号后添加空格,您可以过滤掉数字的第二部分。

【讨论】:

  • 哦,我明白了。有没有另一种方法可以做到这一点,我正在使用的实际文本看起来并不好看
  • @TentacleSlinger:您是否仔细阅读了这个答案?
  • 我没有重新回答我的问题:/对不起
  • 如果在逗号“,”后面加一个空格,会过滤掉像“2,000”这样的数字,因为逗号和0之间没有空格。
  • “计费办公室/提供者:医生地点 P.SC.,办公地点”,“提供者:姓名,姓氏”,分类:无分类,99215,办公室门诊 4,私人,1,1 ,0,"1,060",0,0
【解决方案2】:

您可以使用“,”作为分隔符并执行第二遍,您将合并包含数字的字符串(每个示例使用 std::isdigit)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多