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

C#如何让字符串末尾空换行对应的\n转义字符正常显示

问题根源
  • 你初始化的pins字符串仅包含3个\n分隔4行内容,最后一行末尾没有\n,经过反转操作后末尾依然没有换行符
  • 如果代码后续逻辑或者输出环境存在自动修剪末尾空白字符的规则,全空白的末尾行连带对应的\n会被直接移除,就会出现你遇到的缺行问题
修复方案

直接在最终返回的结果末尾追加一个\n,同时避免对结果做任何Trim类操作即可,修改后的代码如下:

using System.Linq;

namespace BowlingPins
{
    public class Bowling
    {
        public string BowlingPins(int[] arr)
        {
            int count = 0;
            string pins = "!!!I!!!\n!!I!I!!\n!I!I!I!\nI!I!I!I";
            string[] pinArr = pins.Select(c => c.ToString()).ToArray();

            for (int i = 0; i < pinArr.Length; i++)
            {
                string item = pinArr[i];
                if (item == "I")
                {
                    count++;
                }

                foreach (int num in arr)
                {
                    if (num == count)
                    {
                        pinArr[i] = "!";
                    }
                }
            }
            
            var result = string.Join("", pinArr.Reverse()).Replace("!", " ");
            // 末尾追加换行符,保证四行都有对应的换行标识
            return result + "\n";
        }
    }
}
补充说明
  • 如果你的需求是要查看字符串的转义字面量,需要把\n替换为\\n后再输出,就可以直接看到\n字符而不是被解析为换行
  • 不要在返回前调用Trim()、TrimEnd()这类方法,会删掉末尾的空白和换行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:09:02