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

如何让C#火柴人字符串内的换行符不干扰楼梯打印循环代码?

解决火柴人换行干扰楼梯打印的问题

你的核心问题是火柴人字符串内的\n会直接触发控制台换行,导致火柴人的每一行脱离楼梯的缩进逻辑。解决思路是拆分火柴人的行结构,给每一行单独添加对应楼梯层级的缩进,具体实现如下:

修正后的代码实现

首先修正变量名(C#变量名不能含空格),并将火柴人拆分为可单独处理的行:

// 用逐字字符串(@)定义火柴人,结构更清晰
string stickMan = @"*****
  O
     / | \
     /   \
*****";
// 按换行符拆分成单独的行
string[] stickManLines = stickMan.Split('\n');

// 模拟下楼梯的循环,示例设为5层
for (int step = 0; step < 5; step++)
{
    // 生成当前楼梯层级的缩进空格,可调整step的乘数控制缩进幅度
    string stepIndent = new string(' ', step * 2);
    
    // 给火柴人的每一行加上缩进后打印
    foreach (string line in stickManLines)
    {
        Console.WriteLine(stepIndent + line);
    }
    
    // 可选:每层楼梯间添加空行分隔
    Console.WriteLine();
}

原理说明

  • 用逐字字符串@定义火柴人,避免手动拼接\n更易维护
  • 将火柴人拆分为行数组后,每一行都能独立适配楼梯的缩进逻辑
  • 循环中先生成对应层级的缩进空格,再逐行打印带缩进的火柴人行,彻底避免原字符串内的换行符打乱楼梯结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 22:30:32