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

为何使用Char.ToLower()无法将字符串中的字符转为小写?

问题解决:Char.ToLower()和String.ToLower()无效果的原因及修复

Char.ToLower()失效的原因及修复

char.ToLower()是纯方法,它不会修改传入的字符本身,而是返回一个新的小写字符。你的代码只调用了方法,但没把返回值赋值回数组对应位置,所以原数组完全没变化。

修复后的代码:

Console.Clear();

string rightWord = "Arose";
char[] rightWordArray = rightWord.ToCharArray();

for (int i = 0; i < rightWord.Length; i++)
{
    if (char.IsUpper(rightWordArray[i]))
    {
        // 将返回的小写char赋值回数组
        rightWordArray[i] = char.ToLower(rightWordArray[i]);
    }
}

foreach (var item in rightWordArray)
{
    Console.WriteLine(item);
}

String.ToLower()失效的原因及修复

C#里的字符串是不可变类型,所有字符串修改方法都会返回新的字符串对象,不会改变原字符串。如果只是调用rightWord.ToLower()却不接收返回值,原字符串自然不会变化。

修复示例:

Console.Clear();

string rightWord = "Arose";
// 接收返回的新字符串
rightWord = rightWord.ToLower();

foreach (var item in rightWord)
{
    Console.WriteLine(item);
}

更简洁的写法

如果不需要操作字符数组,直接用字符串方法一步到位即可:

string rightWord = "Arose";
string lowerWord = rightWord.ToLower();
Console.WriteLine(lowerWord); // 输出 "arose"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:50:37