↑看個小廣告,支持好內容↑
萬丈高樓平地起,大寫字母不過 26 個嘛,土法煉鋼做個索引總行吧:
map["A"]="a", map["B"]="b", map["C"]="c" ...
逐字元跑個迴圈檢測,要是在索引裡取得到值,必定代表它是大寫的字母,要用其索引值 (小寫字母) 轉換,反之則照常輸出就行。
索引的取值 map["X"]
就像陣列取項一樣,複雜度 O(1)
,在演算上並不算是笨方法,但是否感覺手工寫了一堆程式 XD
有個可愛工具 ASCII 編碼能幫忙省工!
對每個字元 i,我們可透過 i.charCodeAt()
取得它的 ASCII 值,介在 65~90 的即為要被轉換的大寫字母。(備註:小寫則是 97~122,這些數字在字母處理的題目很好用,可以記起來!)
// 取得 ASCII 值
"A".charCodeAt() // 65
// 輸出 ASCII=65 的字碼
String.fromCharCode(65) // "A"
[補充] 事實上 Javascript 字串的大小比較,就是利用 ASCII 值判斷的喔:
// 兩種方式效果相同
"X">="A" && "X"<="Z"
"X".charCodeAt()>=65 && "X".charCodeAt()<=90
當然你要用 s.toLowerCase()
也不是不行啦 (沒,你面試這樣搞應該會被瞪
String
82.8%