如何解析要比较的分隔文件

时间:2013-05-13 18:57:38

标签: c# string parsing

有一个格式如下例所示的文本文件,我需要搜索学生班级名称:

Michael | Straham | Eng101(4.0) | Mth303
Jacob | Black | SCI 210 (2.3) | Eng101
Ian | Summers | Mth303(3.30) | Sci 210

分隔符号为(|)

班级名称为“ENG101,SCI210,MTH303”。我想从文本中搜索该类名称的每一行,并以某种方式对它们进行索引,以便可以对它们进行比较。最终的结果是:

ENG101:
Michael Straham, Jacob Black

请协助。提前谢谢!

1 个答案:

答案 0 :(得分:0)

我假设您已经逐行读取输入内容。

你可以使用String.Split()来完成你想要做的事情(第一部分)。

例如,以下代码

String s1 = "Michael | Straham | Eng101(4.0) | Mth303";
char[] separators = { '|' };
String[] values = s1.Split(separators);

会给你一个包含4个字符串的数组(“Michael”,“Straham”,“Eng101(4.0)”,“Mth303”)。然后,您可以分析values数组以查看哪个类在哪个类中。我可能有大致看起来像这样的代码(在伪代码中):

foreach (line in input)
{ 
    String s1 = line;
    char[] separators = { '|' };
    String[] values = s1.Split(separators);

    String firstName = values[0];
    String lastName = values[1];

    for (i = 2, i < values.length)
    {
        if (values[i] looks like "ENG101")
        {
           add firstName lastName to "ENG101" student list
        }
        else if (values[i] looks like "MTH303")
        {
           ....
        }
        ....
    }
}