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

C#实现帕斯卡命名时字符串数组首字符转大写问题排查

修复帕斯卡命名转换的首字母大写问题

你的代码逻辑没问题,不用换思路,只需要修改一行就能解决首字母不生效的问题:

问题根源

Char.ToUpper(write[0]) 这个方法是返回一个新的大写字符,而不是直接修改原字符数组里的元素。你现在只是调用了方法,但没把返回的大写字符赋值回数组的第一个位置,所以原数组的首字母还是小写的。

修复后的代码

static void Main(string[] args)
{
    Console.WriteLine("Write words that you would like to be in pascal case.");
    var input = Console.ReadLine();

    var inputLower = input.ToLower();

    var inputLowerSplit = inputLower.Split(' ');

    for (var i = 0; i < inputLowerSplit.Length; i++)
    {
        var write = inputLowerSplit[i].ToCharArray();
        
        // 关键修改:把大写后的字符赋值回数组的第一个位置
        if (write.Length > 0) // 避免空字符串导致索引越界
        {
            write[0] = Char.ToUpper(write[0]);
        }

        Console.Write(write);
    }
}

额外说明

加了if (write.Length > 0)的判断是为了处理输入中可能出现的连续空格(比如输入hello world,Split后会产生空字符串元素),避免访问write[0]时出现索引越界错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 07:12:14