題目描述
實(shí)現(xiàn)函數(shù) ToLowerCase()嫡秕,該函數(shù)接收一個(gè)字符串參數(shù) str,并將該字符串中的大寫字母轉(zhuǎn)換成小寫字母苹威,之后返回新的字符串昆咽。
示例 1:
輸入: "Hello"
輸出: "hello"
分析
題目要求實(shí)現(xiàn)ToLowerCase函數(shù),也就是將大寫字母轉(zhuǎn)換成寫小字母屠升。注意不能直接調(diào)用現(xiàn)成的toLowerCase函數(shù)潮改。題目其實(shí)需要考慮兩點(diǎn):
- 找出大寫字母
-
將大寫字母轉(zhuǎn)換成相對(duì)應(yīng)的小寫字母
思考一下在編程中我們?nèi)绾闻袛嘁粋€(gè)字母是不是大寫字母?
通過判斷字母的編碼值狭郑,如果它的編碼值在65-90之間那么它就是大小字母腹暖。同理如果它的編碼值在97-122之間,那么它就是小寫字母翰萨,也就是說這樣的話脏答,我們不僅可以通過編碼找出大寫字母,而且還可以通過編碼值實(shí)現(xiàn)大寫字母和小寫字母的轉(zhuǎn)換亩鬼。
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){
//將大寫字母轉(zhuǎn)化為小寫字母
res += String.fromCharCode(code + 32);
}else {
res += str[i];
}
}
return res;
};
總結(jié)
雖然是一道很簡(jiǎn)單的題目殖告,但是這里涉及到了關(guān)于編碼一些常見的知識(shí),這些知識(shí)很零碎雳锋,如果我們平常不注意黄绩,在面試時(shí)需要手寫代碼就比較麻煩了。
- A-Z 的 ASCII編碼范圍為 65-90 玷过。a-z的ASCII編碼范圍是97-122.
- str.charCodeAt(index):是字符串對(duì)象獲取指定位置字符的ASCII編碼值.
- String.fromCharCode(code):是String類上的方法爽丹,通過ASCII編碼獲取相對(duì)應(yīng)的字符.