【问题标题】:How to access individual strings within a split text file如何访问拆分文本文件中的单个字符串
【发布时间】:2019-06-19 16:47:27
【问题描述】:

我需要一种从文本文件的一部分访问列值(由 \t 分隔)的方法。

文本文件的部分由“*”分隔。我可以使用下面的简单代码找到这些部分。

 var text = File.ReadAllText("PIP_geometries.csv");

 var FlowlineSections = text.Split('*');

在每个部分中,有 3 列带有标题和一些数据行。我想达到这些值。

例如:

*

Name  Country  
John  USA

Jack  Russia

Jim   USA

*

Name  Country

Ross  NZ

Moss  UK

在后面的代码中,拆分后的整个部分看起来像一个字符串。我如何为“JIM”获得“USA”

【问题讨论】:

  • 你分割字符串一次,答案是再次分割你的字符串。
  • 谁创建了这种文本文件格式?你可以踢他

标签: c# .net parsing text split


【解决方案1】:

所以一种方法是

var secondsplitter = new [] {"\r\n","\n","\r"};
@"*

Name  Country  
John  USA

Jack  Russia

Jim   USA

*

Name  Country

Ross  NZ

Moss  UK"
    .Split('*')
    .Where(x => !String.IsNullOrWhiteSpace(x))
    .Select(x => x.Split(secondsplitter,StringSplitOptions.RemoveEmptyEntries))

给了

【讨论】:

    【解决方案2】:

    试试这个 var FlowlineSections = text.Split('*')[1].Split(vbTab);

    【讨论】:

      【解决方案3】:

      第一次拆分后,您的第一个字符串应该是这样的:

      Name\tCountry\nJohn\tUSA\nJack\tRussia\nJim\tUSA

      因此,您需要将其拆分为 \n 以获取每一行,然后对于每一行(如果您不关心标题,则跳过第一行)您需要将其拆分为 @ 987654323@。如何处理这些结果取决于您。您可以将其转换为字符串列表、字典或填充您创建的某些对象类型。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多