You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中为指定格式行的末尾添加右括号?

需求与代码修复

需求:将文本中所有包含「create view」的行,转换为CSQL_CREATE_VIEW (视图名)格式(每行末尾添加右括号,最终效果为CSQL_CREATE_VIEW (视图名)\n),但当前代码无法实现该功能,需要修复。

当前问题代码

string[] Files = System.IO.Directory.GetFiles(@"filepath");
string path = @"outputTextPath";

foreach (string s in Files)
{
    string fileCont = System.IO.File.ReadAllText(s);
    if(fileCont.Contains("create view") == true)
    {
        File.AppendAllText(path, fileCont.Replace("create view","CSQL_CREATE_VIEW ("));
        if (fileCont == "\r" && fileCont.Contains("CSQL_CREATE_VIEW ("))
        {
            File.AppendAllText(path, ")" + Environment.NewLine);
        }
    }
}

代码问题分析

  1. 未按行处理:直接读取整个文件内容替换,无法针对单个目标行精准添加右括号
  2. 判断逻辑错误:fileCont == "\r"永远不成立(fileCont是整个文件内容,不可能等于单个换行符),导致末尾的右括号永远不会被添加
  3. 追加方式错误:直接替换整个文件内容追加到输出,会导致重复内容且格式混乱

修复后的代码

string[] files = System.IO.Directory.GetFiles(@"filepath");
string outputPath = @"outputTextPath";

foreach (string filePath in files)
{
    // 按行读取文件内容
    string[] lines = System.IO.File.ReadAllLines(filePath);
    foreach (string line in lines)
    {
        string processedLine = line;
        // 针对包含"create view"的行进行处理
        if (processedLine.Contains("create view"))
        {
            // 替换前缀后,在该行末尾添加右括号
            processedLine = processedLine.Replace("create view", "CSQL_CREATE_VIEW (") + ")";
        }
        // 将处理后的行写入输出文件(Append模式保留原有内容)
        System.IO.File.AppendAllText(outputPath, processedLine + Environment.NewLine);
    }
}

说明

  • 按行读取文件,确保只修改包含create view的目标行
  • 在替换前缀后直接在该行末尾添加右括号,严格符合需求格式
  • 逐行追加到输出文件,避免内容混乱

内容的提问来源于stack exchange,提问作者Vemala Valas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 07:35:36