如何剪切字符串的第一部分并将其存储

时间:2018-07-09 10:23:57

标签: c# .net

我有一个txt文件,该文件的行以一个随机字符开头,后跟7个数字,如下所示:

  • A1234567-随机
  • E2345678-随机
  • D5423434-随机

我想从每一行复制前8个字符,并存储它们,以制作一个仅包含起始字符所需部分的txt文件。

我发现Substring方法可以工作,我只是不知道如何用它们来制作数组。

如果有人可以帮助我,那将对我有很大帮助。

谢谢!

1 个答案:

答案 0 :(得分:6)

查询时,请尝试使用 Linq

 using System.IO;
 using System.Linq;

 ...

 string[] result = File
   .ReadLines(@"c:\MyFile.txt")
 //.Where(line => line.Length >= 8) // uncomment if you want to remove short lines
   .Select(line => line.Length >= 8 
      ? line.Substring(0, 8) 
      : line)
   .ToArray();

如果要确保该行以模式(大写字母后跟7位数字)开头,则可以尝试正则表达式

  using System.IO;
  using System.Linq;
  using System.Text.RegularExpressions;

  ...

  string[] result = File
    .ReadLines(@"c:\MyFile.txt")
    .Select(line => Regex.Match(line, "^[A-Z][0-9]{7}"))
    .Where(match => match.Success)
    .Select(match => match.Value)
    .ToArray();

要将日期写入文件,请使用File.WriteAllLines

  File.WriteAllLines(@"c:\cleared.txt", result);