从字符串中删除最后一行

时间:2013-12-06 19:49:37

标签: c# string winforms

我有一个字符串,看起来像这样:

line1
line2
line3
line4

我想删除最后一行(第4行)。我该怎么做?

我试过这样的事情,但它要求我知道最后一行包含多少个字符:

output = output.Remove(output.Length - 1, 1)

6 个答案:

答案 0 :(得分:11)

另一种选择:

str = str.Remove(str.LastIndexOf(Environment.NewLine));

当最后一行为空或仅包含空格时,您需要继续删除行,直到删除非空白行,您只需先调整字符串的结尾,然后再调用{{1 }}:

LastIndexOf

答案 1 :(得分:4)

如果您将字符串定义为:

string str = @"line1
                line2
                line3
                line4";

然后你可以这样做:

string newStr = str.Substring(0, str.LastIndexOf(Environment.NewLine));

如果你的字符串有开始/结束空格或换行符,那么你可以这样做:

string newStr = str
                   .Substring(0, str.Trim().LastIndexOf(Environment.NewLine));

答案 2 :(得分:4)

您可以拆分它,除了最后一行之外的所有行,并使用String.Join创建最终字符串。

string[] lines = str.Split(new []{Environment.NewLine}, StringSplitOptions.None);
str = string.Join(Environment.NewLine, lines.Take(lines.Length - 1));

答案 3 :(得分:3)

找到最后一个换行符,并在此之前获取字符串的一部分:

theString = theString.Substring(0, theString.LastIndexOf(Environment.NewLine));

答案 4 :(得分:2)

string[] x = yourString.Split('\n');
string result = string.Join(x.Take(x.Length - 1), Enviroment.NewLine);

答案 5 :(得分:1)

var newStr = str.Substring(0, str.LastIndexOf(Environment.NewLine));