1. 程式人生 > >709 to lower case 及字串方法總結

709 to lower case 及字串方法總結

 

 

/**
 * @param {string} str
 * @return {string}
 */
var toLowerCase = function(str) {
    var result = '';
    for(var i =0; i< str.length; i++){
        var code = str[i].charCodeAt();
    
        if(65 <= code && code <= 90 ){
            code +=32;
            result += String.fromCharCode(code); 
        }
      else{result += str[i]; }
    }
    return result;
};
console.log(toLowerCase('Hello'));

這裡是用了一個新的result='';
遍歷字串,如果是大寫字母(用函式charCodeAt()獲取ascii碼),則+32利用String.fromCharCode(xxx)變成小寫,加入到result中,不是的話就正常加入

這裡著重學習2個函式,str.charCodeAt() 和 String.fromCharCode(xxx),  並且學會使用ASCII碼去解決相關的問題。

 

注意:

字串不可改變,不可通過for遍歷去改變
split()用於字串轉換成陣列,2個引數,(分隔符,最大元素數)
splice()用於陣列,改變原陣列,slice()即可用於陣列,也可用於字串

 

引申出來一個比較大的話題:    關於JS字串的相關方法
1.和陣列關係密切     陣列和字串可以相互轉換
      字串的話,用split()方法,陣列的話用join()方法
2.字串轉換
       xxx.toString()    String(xxx)       ''+xxx     三種方法都可以
3.字串分割成陣列    split()
4.獲取字串長度   str.length     有一個技巧就是可以通過str[str.length - 1]獲取到最後一項的元素
5.可以用indexOf()查詢字串      查到返回下標,查不到返回-1,可以用這個判斷是否存在
    lastIndexOf()可以後面開始查詢,返回第一個查到的下標
6.字串替換    replace('a','b')     a替換成b    可以在第一個字串引數使用正則表示式,/a/g  全域性替換掉a
7.    str[0].charCodeAt()  返回ascii碼      String.fromCharCode(90)   返回'z';
8.字串拼接   
     可以直接相加
         也可以使用  str1.concat(str2 )
9.獲取子字串   
     第一種可以用 slice(0,5)   左閉右開      
         第二種subString(0,5)    依舊是左閉右開
     第三種   subStr(0,5)   第二個引數是字元的數量  這裡代表拿5個字元
10.大小寫轉換
     str.toUpperCase()   
     str.toLower()
11.字串匹配
     match()方法   接受一個正則表示式的變數,返回陣列,有g返回匹配字串的陣列 ,沒有g返回匹配的一個字串和一個捕獲組(index和input)  找不到返回null
12.字串比較
      可以用大於,小於,等於號比較
      可以用localeCompare()比較