成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

從編輯器視角審視String的4類26種方法

開發(fā) 前端
為什么string 字符串在各種語言中會有如此之多的 methods 呢?只須簡單想一下,我們?nèi)沼玫木庉嫷娜抗δ芷鋵嵵徊贿^就是在處理和操作字符串。

[[389467]]

為什么string 字符串在各種語言中會有如此之多的 methods 呢?只須簡單想一下,我們?nèi)沼玫木庉嫷娜抗δ芷鋵嵵徊贿^就是在處理和操作字符串。

一、編輯器文本操作

開始盤點 string 的所有 methods 之前,我們首先梳理在編輯器中,處理文本文字,都有哪些操作。

第一類,選擇復制與黏貼;

第二類,具體的編輯操作,寫入文本,查詢修改,以及刪除;

第三類,撤銷與重復操作;

第四類,補全操作,語法檢查以及斷行等。

下面,我們將按照以上編輯器文本處理的類型,對所有string的方法作分類。

二、String 字符串操作的分類

事實上,我們每日所處理的文本內(nèi)容,文件的內(nèi)容就是 string。

第一類、選擇與復制(2種方法)

首先編輯器處理文本內(nèi)容的第一類,黏貼與復制,就是光標選中文本的特定區(qū)域,執(zhí)行復制與黏貼操作。對應到 string 操作中,就是 substring, slice.

  1. > let s = "string categories" 
  2. > s.substring(7, 16) 
  3. 'categorie' 
  4. > s.substring(16, 7) 
  5. 'categorie' 
  6. // slice 與 substring 的區(qū)別只在于,substring 會自動調(diào)整大小數(shù)的順序 
  7. > s.slice(7, 16) 
  8. 'categorie' 
  9. > s.slice(16, 7) 
  10. '' 
  11. // 特殊的 split 方法 
  12. > s.split(" "
  13. 'string''categories' ] 

 第二類,具體的編輯操作

在數(shù)據(jù)庫操作中,我們往往喜歡說“增刪改查“這樣的四種操作和操作順序。乍一讀似乎朗朗上口,然而細品起來,"增刪改查"的順序比較荒謬。怎么剛剛“增”了就馬上又要“刪”呢?刪除的依據(jù)是什么?不要首先查詢嗎?查詢后不要嘗試修改嗎?直至修改不好,最后一步才是“刪除”。

因此,將“增刪改查”的順序,變更為“增查改刪”。

所謂的“增“就是”字符串“的創(chuàng)建,有三種方式:

  1. s = 'string categories' // single quote 
  2. s = "string categories" // double quote  
  3. s = `string categories` // caret ` 

 其次是"查", 無論在編輯器中,還是字符串的處理過程中,查詢都是關(guān)鍵的部分。編輯器查詢往往多為regex的應用,這對于 string 操作而言過于重型,常用的多為邏輯查詢5種。

  1. > s.charAt(0) 
  2. 's' 
  3. > s.charAt(s.length-1) 
  4. 's' 
  5. > s.startsWith('str'
  6. true 
  7. > s.endsWith('es'
  8. true 
  9. > s.includes('c'
  10. true 
  11. > s.indexOf('c'
  12. > s.lastIndexOf('c'
  13. 7s 

 高階的regex正則查詢:

  1. > s.search(/[\s]/g); 
  2. > s.search(/[\w]/g); 
  3. > s.match(/[\s]/i) 
  4. ' 'index: 6, input: 'string categories', groups: undefined ] 
  5. > s.match(/[\w]/i) 
  6. 's'index: 0, input: 'string categories', groups: undefined ] 
  7. > s.match(/[\w]/g) 
  8.   's''t''r''i'
  9.   'n''g''c''a'
  10.   't''e''g''o'
  11.   'r''i''e''s' 
  12. > arr = [...s.matchAll(/[\w]/g)] 
  13.   [ 's'index: 0, input: 'string categories', groups: undefined ], 
  14.   ... 
  15.   [ 'i'index: 14, input: 'string categories', groups: undefined ], 
  16.   [ 'e'index: 15, input: 'string categories', groups: undefined ], 
  17.   [ 's'index: 16, input: 'string categories', groups: undefined ] 

 緊隨“查詢”的是“變更”與“修改”, 繼續(xù)regex的邏輯,我們查看 replace.

  1. > s.replace('string''arry'
  2. 'arry categories' 
  3. > s.replace(/[a-z]+/, "array"
  4. 'array categories' 
  5. > s.replaceAll() 

 其他常用的 case, transpose, join, 以及 whitespace 的操作:

  1. // CaseManipulation 
  2. > s.toLowerCase() 
  3. 'string categories' 
  4. > s.toUpperCase() 
  5. 'STRING CATEGORIES' 
  6. s.toLocaleLowerCase 
  7. s.toLocaleUpperCase 
  8.  
  9. // 對 whitespace 的處理 
  10. s.trim 
  11. s.trimStart 
  12. s.trimEnd 
  13.  
  14. // 增加空格等 
  15. s.padStart 
  16. s.padEnd 
  17.  
  18. //以及多行的合并 
  19. > s.concat(' new'
  20. 'string categories new' 

 第三類 撤銷與重復操作:

沒有撤銷操作而只有重復.

  1. > s.repeat(3) 
  2. 'string categoriesstring categoriesstring categories' 

第四類 補全,語法檢查和斷行

此處我們姑且將 pad 作為補全, 而將 split 想象為斷行.

三 對底層編碼的處理

String 字符串就是文字與編碼, 因此最底層的對應編碼的操作也歸類此處處理.

  1. > s.charCodeAt(0) 
  2. 115 
  3. > s.codePointAt(0) 
  4. 115 
  5. > s.normalize() 
  6. 'string categories' 

 四 總結(jié)

諸上為從編輯器的慣常操作,而對string所有的methods作歸類的盤點。

  1. // 1.選擇與復制 3 
  2. substring, slice, split 
  3.  
  4. // 2.具體的編輯操作, 按照“增查改刪”的原則 
  5. // 2.1 增加 1 
  6. constructor 
  7. // 2.2 查詢 8 
  8. charAt,  
  9. startsWith, endsWith,  
  10. includes, indexof, lastIndexOf, 
  11. search, searchAll 
  12. // 2.3 改 10 
  13. replace, replaceAll,  
  14. toLowerCase, toUpperCase, //Case 
  15. trim, trimStart, trimEnd, // whitespae 
  16. padStart, padEnd // completion 
  17. concat //合并 join 
  18.  
  19. // 3. 重復與撤銷等 1 
  20. repeat 
  21.  
  22. // 4.處理底層編碼 3 
  23. charCodeAt,codePointAt,normalize 

 

 

責任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2015-04-23 09:58:50

2020-11-16 15:51:54

Kubernetes

2019-10-08 10:28:36

Python程序員鏡音雙子

2013-01-07 10:44:00

JavaScriptjQueryJS

2011-08-03 17:23:31

注冊表編輯器注冊表組策略

2011-09-19 14:30:27

2013-05-23 09:35:39

路由器上網(wǎng)故障

2018-05-29 11:20:18

數(shù)據(jù)中心方法省錢

2010-02-23 15:44:24

Python編輯器

2011-01-10 16:17:49

2020-07-24 00:34:54

工業(yè)物聯(lián)網(wǎng)IIOT物聯(lián)網(wǎng)

2009-04-13 09:09:53

WebServices返回數(shù)據(jù)橫向

2020-08-03 15:41:02

JavaScript開發(fā)技術(shù)

2009-06-06 16:10:47

Eclipse RCP屏蔽視圖

2017-04-28 15:07:10

網(wǎng)絡(luò)瓶頸問題

2020-12-01 09:00:00

數(shù)據(jù)中心IT技術(shù)

2010-03-24 09:20:07

CentOS vi編輯

2022-03-28 05:58:36

勒索軟件惡意軟件網(wǎng)絡(luò)安全

2018-05-03 14:53:58

數(shù)據(jù)中心節(jié)省成本停機

2019-06-04 15:34:05

WindowsLinuxLinux命令
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 96国产精品久久久久aⅴ四区 | 欧美成人激情 | 日韩欧美在线观看视频网站 | 国产丝袜人妖cd露出 | 免费av观看| 久草在线在线精品观看 | 色视频网站| 91国内精品久久 | 天天干国产| 超碰日本 | 国产成人福利在线观看 | 欧洲av一区| 国产国产精品久久久久 | 午夜丰满寂寞少妇精品 | 亚洲一二三区不卡 | 瑞克和莫蒂第五季在线观看 | 久久亚洲国产精品 | 精品成人免费一区二区在线播放 | 中文字幕国产一区 | 精品国产久 | 久久综合一区二区 | 久久久国产精品 | 亚洲 自拍 另类 欧美 丝袜 | 人人爱干 | www.狠狠干 | 国产乱码精品一区二区三区中文 | 日韩中文久久 | 国产综合久久 | 欧美11一13sex性hd | 日韩91在线 | 国产成人综合亚洲欧美94在线 | 色偷偷人人澡人人爽人人模 | 中文精品视频 | 精品一区二区在线看 | 精品久久久久久 | 一级黄色片免费在线观看 | 国产精品99久久久久久宅男 | 日韩精品在线观看一区二区三区 | 国产清纯白嫩初高生在线播放视频 | 国产精品成人一区二区三区夜夜夜 | 黄色大片免费看 |