2012-03-15 12 views
3

ここに問題があります。私はWPFとC#4.0のプロジェクトで作業しています.netプラットフォーム。私はAccepts return = "true"のテキストボックスから得た文字列を持っています。文字列は次のようになります。文字列のキャリッジリターンを検出する方法

string P = @"Copyright 1995-2010 BYTES. 
      All rights Reserved. 
      Formerly "TheScripts.com" from 2005-2008"; 

キャリッジリターン文字が遭遇したときを検出したいと思います。私は文字列を省略して「著作権1995-2010 BYTES」にすることができます。キャリッジリターンが発生した後にすべての文字を削除します。

は私が助けてくださいGUYS

答えて

2

使用string.Split

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

これは、各ラインを含む文字列配列になります。

返さstring[]を想定して、最初の行を取得するには、lines変数である:

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

あなたのソリューションが動作していない理由の - TrimEndのみ、文字列の末尾から文字を削除し、真中ではない。

2

ああ動作していないこの

string ip = datarow[0].ToString(); 
string trimed= ip.TrimEnd(new char[] {'\r','\n'}); 
profileFNcb.Items.Add(trimed);  

をやってみました:私はあなたの質問を読み違える - これは役立つはず:

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 –

0

TrimEndは、末尾の文字を削除しますが、文字の最初の文字列を「終了」しません。あなたがする必要があるのは、 '\ r'または '\ n'の最初のインスタンスを検索し、その前に文字の部分文字列を保持することです。改行で文字列を分割するために、Environment.NewLine

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() 
関連する問題