Skip to main content

转换成小写字母

题目

实现函数 ToLowerCase(), 该函数接收一个字符串参数 str, 并将该字符串中的大写字母转换成小写字母, 之后返回新的字符串.

示例

输入: "Hello"

输出: "hello"

题解

解法一: 使用 ASCII

基本上来讲就是 API 的活学活用, 以前写过一个 JavaScript API 全解析的网站, 可以看看.

要注意英文大写字母的区间是 charCode >= 65 && charCode <= 90, 并且某个大写字母与之对应的小写字母差 32.

/**
* @param {string} str
* @return {string}
*/
var toLowerCase = function (str) {
let res = ''
for (let i = 0; i < str.length; i++) {
const charCode = str[i].charCodeAt()
if (charCode >= 65 && charCode <= 90) {
res += String.fromCharCode(charCode + 32)
} else {
res += str[i]
}
}

return res
}

解法二: 使用二进制法

TIPS

大写变小写, 小写变大写: 字符 ^= 32;

大写变小写, 小写变小写: 字符 |= 32;

小写变大写, 大写变大写 : 字符 &= -33.

从评论区看到了这个写法, 不过用 js 貌似不支持, 先留个坑.