如何从字符串中获取第n行?

时间:2014-10-17 07:36:09

标签: c#

我有一个字符串

 UNCON1\r\nMCF\r\n10/16/14 21:08:40\r\n4452 LANCASTER DR NE\r\nM32, 
E305\r\nMCF201410160019\r\n

我想要结果4452 LANCASTER DR NE。它总是在第4行。

我这样做

private void Test(string msg)
{
    for (int i = 0; i < 3; i++)
    {
        msg = msg.Substring(msg.IndexOf("\\r\\n")).Substring(4);
    }
    string address = msg.Remove(msg.IndexOf("\\r\\n"));
}

有没有好办法做到这一点,提前谢谢

3 个答案:

答案 0 :(得分:5)

所以你想要第4行。首先split字符串Environment.NewLine,然后使用数组上的索引器:

string[] lines = str.Split(new []{ Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
string address = lines[3];  // or safe: lines.ElementAtOrDefault(3)  

如果您还想计算空行(如果可能),请使用StringSplitOptions.None

答案 1 :(得分:1)

Split字符串放入其组件行中。尝试:

msg.Split(new char[] {'\r', '\n'}, StringSplitOptions.RemoveEmptyEntries)[3];

Split上的文档:http://msdn.microsoft.com/en-us/library/ms131448(v=vs.110).aspx

答案 2 :(得分:0)

使用Split方法:

string address = msg.Split("\r\n")[3];