字串中常見的三個擷取子串的有趣方法

2021-07-09 02:18:11 字數 1229 閱讀 8225

首先,我們建立乙個字串,如:

var str = "我是一名前端開發工作者";
ok!建立好了乙個字串後,先來介紹一下本次要說的三個方法,都是用來擷取字串子串的方法,分別是slice()、substring()、substr()三個;

首先,三個方法都有著一些共同點,比如:

1、都有兩個引數,其中乙個為可選引數

2、返回的都是乙個新字串

3、都無法更改元字串

話不多說,測試一下:

str.slice(3,7);        //  "名前端開"

str; // "我是一名前端開發工作者"

str.substring(3,7); // "名前端開"

str; // "我是一名前端開發工作者"

str.substr(3,7); // "名前端開發工作"

str; // "我是一名前端開發工作者"

體會到他們的共同點了嗎,但是,有著共同點的同時你看到他們的區別了嗎!

str.slice(3,7);        //  "名前端開"

str.substring(3,7); // "名前端開"

str.substr(3,7); // "名前端開發工作"

首先看引數,同樣的引數,substr()方法卻得到了不一樣的新子串,原因在於在這裡前兩者的第二個引數都是代表著擷取到某個位置的前乙個(下標從0開始,含頭不含尾),所以得到的新子串是從下標為3到(7-1)下標處的字串片段,而對於最後的substr()的第二個引數則表示的是從第乙個引數(開始下標處)開始,要擷取的字元個數,所以得到的結果是」名前端開發工作」。

然而,這還遠遠沒有結束,我們再來看一組更有意思的案例:

str.slice(3,0);            //  ""

str.substring(3,0) // "我是一"

str.substr(3,0); // ""

咋地啦,substring()方法還會變形你知道嗎,他會智慧型判斷將兩個引數中較小的那個引數作為起始下標,較大的那個數值作為結束下標(含頭不含尾),這下明白了嗎!所以在開發中對於字串的擷取要靈活選用不同的方法適應不同的需求!

C 常見的字串擷取

string str 123abc456 int i 3 1 取字串的前i個字元 str str.substring 0,i or str str.remove i,str.length i 2 去掉字串的前i個字元 str str.remove 0,i or str str.substring i...

擷取包含漢字字串的子字串

擷取字串 本書字數 209.9萬字 中間的數字209.9 char test 10 測試 printf s d n test,int strlen test 得到結果是6也就是說每個漢字占用6個字元 然後測試目標字串的大小 char strlen tmp 40 本書字數 209.9萬字 printf...

三個關於字串的考點

最近常常遇到字串相關的考題,於是整理出來了三個常考的知識點。一 c c 中每個字串都以 0 作為結尾,這樣就能很方便地找到字串的最後尾部。但由於這個特點,每個字串都有乙個額外字元的開銷 如空字串其實有乙個字元 0 如果不加以注意就會造成字串的越界。另外,在進行字串複製的時候,忘記複製 0 也會引起錯...