这是问题所在。我正在使用4.0 .net平台开发WPF和C#的项目。我有一个字符串,我从一个文本框得到了Accepts return =“true”。字符串如下
string P = @"Copyright 1995-2010 BYTES.
All rights Reserved.
Formerly "TheScripts.com" from 2005-2008";
现在我想检测何时遇到回车符。因此,我可以将字符串缩短为“Copyright 1995-2010 BYTES”。并在遇到回车后删除所有字符。
我试过这个
string ip = datarow[0].ToString();
string trimed= ip.TrimEnd(new char[] {'\r','\n'});
profileFNcb.Items.Add(trimed);
不工作请帮助
答案 0 :(得分:2)
哦:我误解了你的问题 - 这应该有所帮助:
string onlyCopyright = P.Substring(0, P.IndexOf("\n"));
甚至更好:
string onlyCopyright = P.Substring(0, P.IndexOf(Environment.NewLine));
Trim
仅删除字符串开头和结尾的空格。你想要替换:
string noNewLine = ip.Replace("\n", "").Replace("\r", "");
答案 1 :(得分:2)
将string.Split
与Environment.NewLine
一起使用,以便在换行符上拆分字符串:
myString.Split(new [] {Environment.NewLine},
StringSplitOptions.RemoveEmptyEntries)
这会产生一个包含每一行的字符串数组。
要获取第一行,假设返回的string[]
位于lines
变量中:
string firstLine = lines[0]; // firstLine = "Copyright 1995-2010 BYTES."
您的解决方案无效的原因 - TrimEnd
仅删除字符串的 end 中的字符,而不是中间字符。
答案 2 :(得分:0)
TrimEnd删除尾随字符,它不会在这些字符的第一个实例处“结束”字符串。你需要做的是搜索'\ r'或'\ n'的第一个实例,并在此之前保留字符的子字符串。
答案 3 :(得分:0)
试试这个:
string P = @"Copyright 1995-2010 BYTES.
All rights Reserved.
Formerly ""TheScripts.com"" from 2005-2008";
string firstLine = P.Split(
new string[] { System.Environment.NewLine },
StringSplitOptions.RemoveEmptyEntries)
.FirstOrDefault()