2017-02-10 6 views
-1

は、次のように私は、文字列があるとします。最初の改行後にすべての単語をフェッチする方法は?

User. 
This is first line after line break. 
This is second line after line break. 
//Blank Line 
This is fourth line. 

は、どのように私は非常に最初の改行の後に表示されるすべての単語を取得することができます。 したがって、上記の場合には、私が取得したい:

This is first line after line break. 
This is second line after line break. 
//Blank Line 
This is fourth line. 

すなわち「ユーザ」の次の行の後に起こるもの。

だから、基本的に文字列には、次が含まれます:

User\r\n\r\nThis is first line after line break. //and so on 

私は現在、次のことをやっている:

  // consider demoString is the string variable which holds the entire string mentioned above 

commentStringToSearch = "User"; 
commentStringIndex = demoString.IndexOf(commentStringToSearch, StringComparison.OrdinalIgnoreCase);     

if (commentStringIndex != -1) 
{ 
      commentValue = demoString.Substring(commentStringIndex + commentStringToSearch.Length);   
} 

しかし、このコードの問題は、それが後に何かをフェッチするだろうということです最初の行に空白を含む 'User'という単語。

私の予想される出力は、2番目の行から最後の行までの単語を取得することです。

上記の例を1として、私の予想される出力は、次のことを得ることです:

This is first line after line break. 
This is second line after line break. 
//Blank Line 
This is fourth line. 

(最初の行からすべてを無視し、2回目以降のラインから何かを受け入れる)事前に

感謝。

+1

など、それがヌルのために前に手の文字列を検証する必要がありますEnvironment.NewLineのスプリットを指摘しました。今、あなたはすべての行を持っています。必要に応じて続行します。 – Will

+0

"User"のインデックスを取得した後、そのインデックスの後の最初の改行のインデックスを見つけます。 – juharr

+0

@stuartdあなたはそれを答えにする必要があります。 – Fildor

答えて

2

これを行うための簡単な方法があります:次のように

var newText = text.Substring(text.IndexOf(Environment.NewLine) + Environment.NewLine.Length); 
+0

私はOPのために追加したいと思います:もちろん、あなたの入力を事前にチェックする必要があります:空ではなく、少なくとも1つの改行が含まれています... – Fildor

0

がstuartdの答え@は少し修正して私の問題を解決しました:

var newText = text.Substring(text.IndexOf(Environment.NewLine) + Environment.NewLine.Length +2); 

であるため2を追加する理由があります@ stuartdの解答では、文字列変数には次の値が含まれます:

\r\nThis is first line after line break. //and so on 

元の文字列から持ち越されている不要な\ r \ nがあるため、部分文字列をスキップするために2を追加する必要があります。そうしないと、スティング値の先頭に不要な空白が追加されます。

そしてとして@Fildorは正しく

関連する問題