c# - C# 使用 StringBuilder 追加测试
问题描述
我使用 StringBuilder 创建了一个长文本,但我只想要换行符 '\n'(Unix 模式)而不是 '\r\n',然后我会将整个文本写入文件中。
我试图在行之间插入 '\n' 字符并设置 AppendFormat 方法但没用。
也许我将这个长文本沿着 '\n' 字符拆分,然后将这些行分别写在文件中。
string rowStart = "\n*****" + from + "|" + to;
StringBuilder sb = new StringBuilder();
sb.Append(data[0]);
for (int i = 1; i < data.Count; i++)
{
//sb.AppendFormat("\n{0}", rowStart + data[i]); not work
sb.Append(rowStart + data[i]);
}
//var t = sb.Replace("\r\n","\n"); not work
return sb.ToString();
解决方案
StringBuilder.AppendLine 只是执行以下操作:
public StringBuilder AppendLine(string value)
{
this.Append(value);
return this.Append(Environment.NewLine);
}
由于 Environment.NewLine 无法设置,你要么做两个追加,要么编写自己的扩展方法,例如:
public static class StringBuilderExtensions
{
public static void AppendUnixLine(this StringBuilder builder, string s)
{
builder.Append(s);
builder.Append('\n');
}
}
推荐阅读
- reactjs - Formik - 当一个字段更改时,如何自动控制另一个输入字段的值?
- python - py 命令不起作用,但 python 命令在 cmd 中工作
- javascript - 尝试从我的 api 获取数据时获得 [object object] 响应
- php - 用自制软件更新 php 会导致并发症
- python - 如何使用python中的两列计算进程的总长度,直到它发生变化?
- powershell - PSWindowsUpdate 在域管理员时在远程机器上被拒绝访问
- git - git serverside hook - 用于检查 Java 代码格式的预接收或更新 - 如何使用它?
- javascript - 不包括 node_modules 的 Glob 文件模式
- swiftui - SwiftUI:QuickLook 在 iPad 设备中无法正常工作
- typescript - 从泛型类型推断返回类型?