C# 从字符串中删除最后一行
我有一个字符串,看起来像这样:C# 从字符串中删除最后一行,c#,string,winforms,C#,String,Winforms,我有一个字符串,看起来像这样: line1 line2 line3 line4 我想删除最后一行(第4行)。我该怎么做 我尝试过类似的操作,但它要求我知道最后一行包含多少字符: output = output.Remove(output.Length - 1, 1) 如果将字符串定义为: string str = @"line1 line2 line3 line4"; 然后你可以做: strin
line1
line2
line3
line4
我想删除最后一行(第4行)。我该怎么做
我尝试过类似的操作,但它要求我知道最后一行包含多少字符:
output = output.Remove(output.Length - 1, 1)
如果将字符串定义为:
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));
如果字符串有起始/结束空格或换行符,则可以执行以下操作:
string newStr = str.Substring(0, str.LastIndexOf(Environment.NewLine));
string newStr = str
.Substring(0, str.Trim().LastIndexOf(Environment.NewLine));
您可以将其拆分,除最后一行外,使用
String.Join
创建最后一个字符串
string[] lines = str.Split(new []{Environment.NewLine}, StringSplitOptions.None);
str = string.Join(Environment.NewLine, lines.Take(lines.Length - 1));
另一种选择:
str = str.Remove(str.LastIndexOf(Environment.NewLine));
如果最后一行为空或仅包含空格,并且需要继续删除行,直到删除非空格行,则只需在调用LastIndexOf
之前先修剪字符串的结尾:
str = str.Remove(str.TrimEnd().LastIndexOf(Environment.NewLine));
找到最后一个换行符,并获取该换行符之前的字符串部分:
theString = theString.Substring(0, theString.LastIndexOf(Environment.NewLine));
发布您的最佳尝试,我们将帮助您解决问题。次要说明:如果
str
字符串开头包含空格,则Trim
之后的LastIndexOf
将不会返回正确的索引TrimEnd
更安全。要修剪两端,请在子字符串之后调用TrimStart