[英]C# Streamreader add new line
我已经进行了搜索,但是遇到的每一个解决方案都涉及到regex
女巫,这并不是我的解决方案。
我的问题很简单,我希望streamreader
每次读取“ ice”一词时都添加一个新行。 请记住, streamreader
输入读取为1行。
我的代码如下:
using (StreamReader sr = new StreamReader(stream))
{
VarrileKeeper.s = sr.ReadToEnd();
//Console.WriteLine(VarrileKeeper.s);
if (VarrileKeeper.s.ToString().Contains("ice"))
{
//insert newline in string
}
sr.Close();
}
您的问题似乎非常简单(或者您没有解释问题背后的复杂性)。
我宁愿使用System.IO.File和String.Replace来解决您的问题:
string filename = "D:\\test.txt";
string output = System.IO.File.ReadAllText(filename).Replace("ice", "ice\n");
System.IO.File.WriteAllText(filename, output);
希望能有所帮助!
有string.Split和string.Join可以达到您的目标
string temp = File.ReadAllText("yourfilename");
var parts = temp.Split(new string[] {"ice"}, StringSplitOptions.None);
VarrileKeeper.s = string.Join("ice"+ Environment.NewLine, parts);
但请记住,这在字符序列ice上是不加区分的,这意味着也将截断更复杂的单词(例如,威尼斯)。
请尝试以下操作:
using (StreamReader sr = new StreamReader(stream))
{
{
VarrileKeeper.s = sr.ReadToEnd();
//Console.WriteLine(VarrileKeeper.s);
if (VarrileKeeper.s.ToString().Contains("ice"))
{
VarrileKeeper.s = VarrileKeeper.s.Replace("ice", "ice" + System.Environment.NewLine);
}
sr.Close();
}
}
尝试这个:
VarrileKeeper.s = string.Join(string.Empty, varrileKeeper.s.Split(' ').Select(x => x == "ice" ? x += Environment.NewLine : x += " "));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.