2017-04-27 2 views
0

ファイルを読み込もうとしていますが、テキストを分割するときに、改行の最後に "\ r \ n" 「例」、「こんにちは」の代わりに「nHello」と入力します。リスト内の文字列を分割し、同じ位置のリストに追加するにはどうすればよいですか?

"\ r \ n"をスペースで置き換えてリストに追加できました。しかし、リストは変わらないので、文字列は単語リスト内の何かを置き換えているようには見えません。それはあなたが必要なものを行いますよう

 string textFile = System.IO.File.ReadAllText(@"C:\Users\example\Downloads\text.txt"); 
     List<string> words = new List<string>(textFile.Split(' ')); 

     foreach (var s in words) 
     { 
      if (s.ToLower().Contains('\n')) 
      { 
       var check = s.Replace("\r\n", " "); 
       List<string> add = new List<string>(check.Split(' ')); 
       words.Concat(add); 
      } 
     } 
+1

少なくともいない提供されたコードでは、あなたが戻ってテキストファイルに何かを書くようにそれは見ていない...「テキストファイルは変更されませんので、」..私のミス – WillardSolutions

+0

申し訳ありませんが、私はちょうど作りました編集、それは '単語リスト'の意味だった '\ r \ n'を含む文字列を分割した後に単語リストを変更したい – Bronson

+0

これは複雑すぎると思います。最初に置き換え、_分割する。 –

答えて

0

ブロンソン、これは一部のRegExにとっては良い場所です。方法:

using System.Text.RegularExpressions; 

string textFile = System.IO.File.ReadAllText(@"C:\Users\example\Downloads\text.txt"); 
var wdRx = new Regex(@"\W+"); 
List<string> words = new List<string>(wdRx.Split(txtFile)); 
foreach (var wd in words) 
{ 
     Console.WriteLine(wd); 
} 

私があなたの問題を理解していれば、新しい行文字を取り除く必要はありません。お役に立てれば。

+0

ありがとう、これは働いた!あなたは何を私に説明してください 'var wdRx = new Regex(@ "\ W +");'ありますか?私は前にRegexを使ったことはない。 – Bronson

+0

あなたは、むしろ、文書を分割するために結ぶよりも、賭け「」、正規表現は(@「\ W +」)ドキュメント内の単語を分離する効果を持つ単語文字「のいずれかのグループによって文書を分割します」。 RegExの仕組みを理解するには、本当にすばらしいサイトであるregex101.comをチェックしてください。 –

0
var MyWords = System.IO.File.ReadAllText("") 
    .myString.Replace("\r\n", " ") 
    .Split(" "); 

これはと思われる:

は、ここに私のコードです。

関連する問題