我需要创建一个TextWriter来填充一些数据。我将StringWriter用作TextWriter,业务逻辑运行良好。
我有一个不能改变的技术要求,因为它可能会破坏所有的客户端。我需要将TextWriter中的字符串数组string[]用行分隔开。
我试着这样做,但不起作用:
using System;
using System.IO;
using System.Text;
namespace TextWriterToArrayOfStringsDemo
{
internal static class Program
{
private static void Main()
{
var stringBuilder = new StringBuilder();
using (TextWriter writer = new StringWriter(stringBuilder))
{
writer.Write("A");
writer.WriteLine();
writer.Write("B");
}
string fullString = stringBuilder.ToString();
string replaced = fullString.Replace('\n', '\r');
string[] arrayOfString = replaced.Split('\r');
// Returns false but should return true
Console.WriteLine(arrayOfString.Length == 2);
}
}
}有什么想法或建议吗?
发布于 2012-04-25 02:00:41
尝试使用Environment.NewLine而不是'\n'进行拆分
var stringBuilder = new StringBuilder();
using (TextWriter writer = new StringWriter(stringBuilder))
{
writer.Write("A");
writer.WriteLine();
writer.Write("B");
}
string fullString = stringBuilder.ToString();
string[] newline = new string[] { Environment.NewLine };
string[] arrayOfString = fullString.Split(newline, StringSplitOptions.RemoveEmptyEntries);
// Returns false but should return true
Console.WriteLine(arrayOfString.Length == 2);发布于 2012-04-25 02:02:13
一种快速的解决方法是使用Regex拆分:
string[] arrayOfString =
System.Text.RegularExpressions.Regex.Split(stringBuilder.ToString(), "\r?\n")https://stackoverflow.com/questions/10303315
复制相似问题