2012-03-15 53 views
3

這是問題所在。我正在使用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);  

不工作請幫助傢伙

回答

2

string.Split使用與Environment.NewLine以分割線的串分解:

myString.Split(new [] {Environment.NewLine}, 
       StringSplitOptions.RemoveEmptyEntries) 

這導致包含每一行的字符串數組。

爲了得到第一線,承擔返回string[]處於lines變量:

string firstLine = lines[0]; // firstLine = "Copyright 1995-2010 BYTES." 

您的解決方案是不工作的原因 - 在TrimEnd僅從結束的字符串的刪除字符,不是中間的。

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", ""); 
+0

非常感謝......真棒該做的。再次感謝Thorsten – 2012-03-15 13:42:00

0

TrimEnd刪除尾隨字符,它不在這些字符的第一個實例「結束」字符串。你需要做的是搜索'\ r'或'\ n'的第一個實例並保留字符的子字符串。

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()