摘要:有兩個函數能實現這兩種轉換把編碼轉換成對應的字符串獲取字符串的編碼下面,我們就動手實現。三代碼實現編碼大寫小寫相差轉換為碼大寫字母,轉小寫編碼大寫小寫相差轉換為碼大寫字母,轉大寫本人刷題庫,感興趣的可以交流
一、 一道題引發的思考
今日在leetCode 刷算法題,遇到一道題:
原題鏈接: https://leetcode.com/problems...
此題要求實現一個大寫轉小寫的函數,當時腦海中第一時間浮現的是,js不是提供了一個
toLowerCase函數么?于是我毫不猶豫的寫下了答案:
/** * @param {string} str * @return {string} */ var toLowerCase = function(str) { return str.toLowerCase(); };
but,我想事情沒有這么簡單,除非作者腦袋被門擠了,于是我就思考,js的toLowerCase 是如何實現的?
二、ASCII編碼查閱資料后我知道了,計算機所有的字符都基于ASCII編碼,下面是ASCII 基礎編碼的映射表:
此時,我們不難發現,A-Z 和 a-z 的 ASCII 編碼的十進制剛好相差32,于是我們的實現思路就是將大寫的轉成十進制編碼,再轉換成小寫字母的十進制編碼,最后得到小寫字母。js有兩個函數能實現這兩種轉換:
String.fromCharCode(num1, ..., numN) //把編碼轉換成對應的字符串 str.charCodeAt(index) //獲取字符串的編碼
下面,我們就動手實現。
三、代碼實現:toLowerCase():
/** * @param {string} str * @return {string} */ var toLowerCase = function(str) { // ASCII 編碼大寫小寫相差32 let arr = str.split(""); let AscCode; let maxCode = "Z".charCodeAt(); let minCode = "A".charCodeAt(); for (let i = 0; i < arr.length; i++) { // 轉換為ASCII碼 AscCode = arr[i].charCodeAt(); // 大寫字母,轉小寫 if (maxCode >= AscCode && minCode <= AscCode) { arr[i] = String.fromCharCode(AscCode+32); } } return arr.join(""); };
toUpperCase():
/** * @param {string} str * @return {string} */ var toUpperCase = function(str) { // ASCII 編碼大寫小寫相差32 let arr = str.split(""); let AscCode; let maxCode = "z".charCodeAt(); let minCode = "a".charCodeAt(); for (let i = 0; i < arr.length; i++) { // 轉換為ASCII碼 AscCode = arr[i].charCodeAt(); // 大寫字母,轉大寫 if (maxCode >= AscCode && minCode <= AscCode) { arr[i] = String.fromCharCode(AscCode-32); } } return arr.join(""); };
本人刷題庫,感興趣的可以交流:https://www.yuque.com/u46795/...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/100269.html
摘要:去掉空格前空格,后空格,前后空格,所有空格字母大小寫切換首字母大寫,首字母小寫,大小寫切換,全部大寫,還不小寫傳入函數,里面的參數分別是字符串本身滿足正則的部分,剩下的部分。 去掉空格 1.前空格,2.后空格,3.前后空格,4.所有空格 function trim(str,type){ switch(type){ ...
摘要:基礎知識字符串中常用的方法在中用單雙引號包裹起來的都是字符串字符串就是由到多個字符組成的特點一以數字作為索引,從零開始特點二有屬性,存儲的是當前字符串中字符的個數字符長度如果指定的索引不存在獲取的結果是真實項目中,我們經常操作字符串,此時 js基礎知識 JavaScript 字符串中常用的方法 在JS中用單(雙)引號包裹起來的都是字符串 var str=welcome to my ho...
摘要:方法閱讀說明返回值類型對象方法名稱參數參數二解釋返回值類型指的是函數調用結束后返回的值的類型。返回值返回字符串對應位置的字符的數值。截取的字符串長度,默認為字符長度。作用把字符串全部轉成大寫語法返回值返回轉成大寫的字符串。 1.方法閱讀說明 返回值類型 對象.方法名稱(參數1[,參數二]); 解釋: 返回值類型:指的是函數調用結束后返回的值的類型。 對象.方法名稱:指的是調用方法。...
摘要:方法閱讀說明返回值類型對象方法名稱參數參數二解釋返回值類型指的是函數調用結束后返回的值的類型。返回值返回字符串對應位置的字符的數值。截取的字符串長度,默認為字符長度。作用把字符串全部轉成大寫語法返回值返回轉成大寫的字符串。 1.方法閱讀說明 返回值類型 對象.方法名稱(參數1[,參數二]); 解釋: 返回值類型:指的是函數調用結束后返回的值的類型。 對象.方法名稱:指的是調用方法。...
摘要:方法閱讀說明返回值類型對象方法名稱參數參數二解釋返回值類型指的是函數調用結束后返回的值的類型。返回值返回字符串對應位置的字符的數值。截取的字符串長度,默認為字符長度。作用把字符串全部轉成大寫語法返回值返回轉成大寫的字符串。 1.方法閱讀說明 返回值類型 對象.方法名稱(參數1[,參數二]); 解釋: 返回值類型:指的是函數調用結束后返回的值的類型。 對象.方法名稱:指的是調用方法。...
閱讀 3406·2021-11-25 09:43
閱讀 3464·2021-11-19 09:40
閱讀 2464·2021-10-14 09:48
閱讀 1283·2021-09-09 11:39
閱讀 1920·2019-08-30 15:54
閱讀 2821·2019-08-30 15:44
閱讀 1994·2019-08-29 13:12
閱讀 1543·2019-08-29 12:59