2017-04-27 25 views
0

我一直有麻烦搞清楚这一点,我试图读取一个文件,但当我拆分文本,我得到“\ r \ n”在每个换行符的末尾,使字符串=“Example \ 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

Bronson,这可能是一些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(" "); 

这似乎是它会做你的需要。

相关问题