从文本文件中删除第一行,并将其余单词放入与空格分隔的数组

时间:2016-06-24 10:48:50

标签: c# regex streamreader

我有以下格式的文本文件

432 23 34 45 56 78 90 67 87 90 76 43 09 .................

我想删除第一行并将其余单词插入与空格分开的数组中。

我编写了以下代码,通过删除空格来获取单词

    StreamReader streamReader = new StreamReader("C:\\Users\\sample.txt"); //get the file
    string stringWithMultipleSpaces = streamReader.ReadToEnd(); //load file to string
    streamReader.Close();

    Regex newrow = new Regex(" +"); //specify delimiter (spaces)
    string[] splitwords = r.Split(stringWithMultipleSpaces); //(convert string to array of words)

一旦我在string[] splitwords行上放置调试点,我就可以看到后面的输出

enter image description here

如何删除第一行并从数组索引[0]获取其余单词?

1 个答案:

答案 0 :(得分:1)

您需要拆分所有空格,而不仅仅是普通空格。

使用@"\s+"模式匹配1+空白符号:

string[] splitwords = Regex.Split(stringWithMultipleSpaces, @"\s+");

另一种方法是逐行读取文件,并且 - 如果总是只有这些数字而不存在Unicode空格 - 请使用普通String.Split()

这样的东西
var results = new List<string>();
using (var sr = new StreamReader("C:\\Users\\sample.txt", true))
{
    var s  = string.Empty;
    while ((s=sr.ReadLine()) != null)
    {
        results.AddRange(s.Split());
    }
}