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 ...