字串補全長度

2021-10-08 12:28:57 字數 1162 閱讀 4248

es2017 引入了字串補全長度。如果某個字串不夠指定長度,會在頭部或尾部補全。padstart()用於頭部補全,padend()用於尾部補全。

'x'.padstart(5, 'ab') // 'ababx''x'.padstart(4, 'ab') // 'abax'

'x'.padend(5, 'ab') // 'xabab''x'.padend(4, 'ab') // 'xaba'

上面**中,padstart()padstart()一共接受兩個引數,第乙個引數用來指定字串的最小長度,第二個引數是用來補全的字串。

如果原字串的長度,等於或大於指定的最小長度,則返回原字串。

'***'.padstart(2, 'ab') // '***''***'.padend(2, 'ab') // '***'

如果用來補全的字串與原字串,兩者的長度之和超過了指定的最小長度,則會截去超出位數的補全字串。

'abc'.padstart(10, '0123456789')// '0123456abc'

如果省略第二個引數,預設使用空格補全長度。

'x'.padstart(4) // ' x''x'.padend(4) // 'x '

padstart()的常見用途是為數值補全指定位數。下面**生成 10 位的數值字串。

'1'.padstart(10, '0') // "0000000001"'12'.padstart(10, '0') // "0000000012"'123456'.padstart(10, '0') // "0000123456"

另乙個用途是提示字串格式。

'15'.padstart(10, 'yyyy-mm-dd') // "yyyy-mm-15"'01-01'.padstart(10, 'yyyy-mm-dd') // "yyyy-01-01"

字串長度

當字元全是英文本元的時候,兩者是一樣。這裡主要比較一下,中英文混排的時候,兩個計算結果。測試時編碼方式是utf8 複製 如下 str 中文a字1符 echo strlen str echo echo mb strlen str,utf8 輸出結果 14 6 結果分析 在strlen計算時,對待乙個u...

字串長度

在c c 中,字串是以零 0 結尾的。比如,對於下面的字串 hello word 在最後乙個字元 d 後面,還有乙個我們肉眼看不見的 0 字元,作為該字串的結束符。所以,hello word 其在記憶體中的儲存形式為 最後有乙個我們看不見的 0 明白了字串的結尾方式,那麼如何計算字串的長度呢?比如 ...

字串長度

碰到第乙個字串結束符 0 時返回計數器值,即 是指實際字串或字元陣列的實際長度 不是所佔空間的位元組數 includeusing namespace std int main char a 32 cin a cin會在寫入結束後加入乙個 0字元 如果輸入了32個字元則會越界 cout strlen ...