题目描述
实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。
示例 1:
输入: "Hello"
输出: "hello"
分析
题目要求实现ToLowerCase函数,也就是将大写字母转换成写小字母。注意不能直接调用现成的toLowerCase函数。题目其实需要考虑两点:
- 找出大写字母
-
将大写字母转换成相对应的小写字母
思考一下在编程中我们如何判断一个字母是不是大写字母?
通过判断字母的编码值,如果它的编码值在65-90之间那么它就是大小字母。同理如果它的编码值在97-122之间,那么它就是小写字母,也就是说这样的话,我们不仅可以通过编码找出大写字母,而且还可以通过编码值实现大写字母和小写字母的转换。
var toLowerCase = function(str) {
var code;
var res = '';
for(var i = 0;i < str.length;i++){
code = str.charCodeAt(i);
//找出大写字母
if(code >= 65 && code <=90){
//将大写字母转化为小写字母
res += String.fromCharCode(code + 32);
}else {
res += str[i];
}
}
return res;
};
总结
虽然是一道很简单的题目,但是这里涉及到了关于编码一些常见的知识,这些知识很零碎,如果我们平常不注意,在面试时需要手写代码就比较麻烦了。
- A-Z 的 ASCII编码范围为 65-90 。a-z的ASCII编码范围是97-122.
- str.charCodeAt(index):是字符串对象获取指定位置字符的ASCII编码值.
- String.fromCharCode(code):是String类上的方法,通过ASCII编码获取相对应的字符.