如何在第一次换行后获取所有单词?

时间:2017-02-10 14:10:14

标签: c#

假设我有一个字符串如下:

User.
This is first line after line break.
This is second line after line break.
//Blank Line
This is fourth line.

如何获取第一个换行符后出现的所有单词。 所以在上面的例子中我想要检索:

This is first line after line break.
This is second line after line break.
//Blank Line
This is fourth line.

即在“用户”的下一行之后发生的任何事情。

所以基本上字符串将包含以下内容:

User\r\n\r\nThis is first line after line break. //and so on

我目前正在做以下事情:

            // consider demoString is the string variable which holds the entire string mentioned above

commentStringToSearch = "User";
commentStringIndex = demoString.IndexOf(commentStringToSearch, StringComparison.OrdinalIgnoreCase);                

if (commentStringIndex != -1)
{
             commentValue = demoString.Substring(commentStringIndex + commentStringToSearch.Length);          
}

但是这段代码的问题在于它会在“用户”这个词后面取任何内容,包括第一行的空格。

我的预期输出是从第二行到最后一行中的单词。

如上例所示,我的预期输出是获得以下内容:

This is first line after line break.
This is second line after line break.
//Blank Line
This is fourth line.

(忽略第一行的所有内容并从第二行开始接受任何内容)

提前致谢。

2 个答案:

答案 0 :(得分:2)

有一种简单的方法可以做到这一点:

var newText = text.Substring(text.IndexOf(Environment.NewLine) + Environment.NewLine.Length);

答案 1 :(得分:0)

@stuartd的回答解决了我的问题,稍作修改如下:

var newText = text.Substring(text.IndexOf(Environment.NewLine) + Environment.NewLine.Length +2);

添加2的原因是因为使用@stuartd的解决方案,字符串变量将包含以下值:

\r\nThis is first line after line break. //and so on

由于有一个不需要的 \ r \ n从原始字符串中继承,因此需要添加2以使子字符串跳过它们,否则会添加一个不必要的空白刺痛价值的开始。

正如 @Fildor 正确指出的那样,必须先验证字符串的空值等。