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

如何用ASCII码将小写转大写且保留字符串中的原有大写字母?

问题分析

当前代码的核心问题是:你只在字符是小写字母(ASCII 97-122)时,才将转换后的大写字母追加到结果字符串s中,其他所有字符(包括原有的大写字母、数字、符号等)都被直接忽略了,所以输入AbCd时,只有b和d被处理,输出自然是BD。

修改方案

要实现「转小写为大写,同时保留原有大写及其他非小写字符」的需求,需要做两个关键调整:

  • 每次点击按钮时重置结果字符串s,避免多次点击导致内容累加
  • 遍历每个字符时,所有字符都要加入结果:小写字母转大写后加入,其他字符直接保留原内容
修改后的代码
string str;
String s;
private void button1_Click(object sender, EventArgs e)
{
    str = textBox1.Text;
    s = ""; // 每次点击重置结果,避免多次点击内容累加
    foreach (char c in str) // 直接遍历char类型更直观,无需转int
    {
        if (c >= 'a' && c <= 'z') // 用字符常量替代ASCII数字,可读性更强
            s += (char)(c - 32);
        else
            s += c; // 非小写字符直接保留原内容
    }
    textBox2.Text = s;
}
额外优化建议

你可以用C#自带的字符判断方法替代ASCII范围判断,代码更健壮且无需硬记ASCII码值:

string str;
String s;
private void button1_Click(object sender, EventArgs e)
{
    str = textBox1.Text;
    s = "";
    foreach (char c in str)
    {
        if (char.IsLower(c))
            s += char.ToUpper(c);
        else
            s += c;
    }
    textBox2.Text = s;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 02:55:14