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

不使用字符串内置函数实现小写转大写:已写部分代码后遇瓶颈

实现不使用内置转换函数的小写转大写

嘿,我来帮你走完剩下的路!你已经初始化了存储结果的变量,接下来我们可以借助ASCII码的特性来完成转换——小写字母和对应的大写字母在ASCII表中正好相差32(比如'a'的ASCII码是97,'A'是65,97-32=65)。

核心思路

  • 遍历字符串的每一个字符
  • 判断当前字符是否为小写字母(ASCII码范围97-122)
  • 如果是,就把它的ASCII码减去32,再转回字符;不是的话直接保留
  • 最后把所有处理后的字符拼接成结果字符串

完善后的代码

function uppp(string) {
  var result = ''; // 存储最终的大写结果
  // 循环遍历每个字符(用string.length获取长度没问题,这不属于转换类内置函数)
  for (var i = 0; i < string.length; i++) {
    var charAscii = string.charCodeAt(i); // 获取字符的ASCII码
    // 检查是否是小写字母
    if (charAscii >= 97 && charAscii <= 122) {
      // 转大写:ASCII码减32后转回字符
      result += String.fromCharCode(charAscii - 32);
    } else {
      // 非小写字母直接追加到结果
      result += string[i];
    }
  }
  return result;
}

测试示例

比如调用uppp("hello Stack Overflow! 123"),会返回"HELLO STACK OVERFLOW! 123",完美保留了非小写字符的原样。

这里用到的charCodeAt()和String.fromCharCode()都是基础的字符/ASCII转换方法,并没有使用toUpperCase()这类直接完成大小写转换的内置函数,完全符合你的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:58:11