我有一个字符串,看起来像这样:
line1
line2
line3
line4
我想删除最后一行(第4行)。我该怎么做?
我试过这样的事情,但它要求我知道最后一行包含多少个字符:
output = output.Remove(output.Length - 1, 1)
答案 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));