如何检测字符串中的回车符

时间:2012-03-15 13:12:43

标签: string c#-4.0

这是问题所在。我正在使用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);    

不工作请帮助

4 个答案:

答案 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.SplitEnvironment.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()