split函式結尾空字串沒存入陣列

2021-08-15 02:13:35 字數 773 閱讀 8020

string urls = " ; n ; ;"

string strings = urls.split(";")

這樣得到的陣列元素個數只是兩個,後面的」;」後沒有內容,它沒有作為空字串成為陣列元素,結尾的空字串被丟棄了!

這個函式還有另一種過載方式 :public string split (string regex, int limit) 看下說明

limit 引數控制模式應用的次數,因此影響所得陣列的長度。如果該限制 n 大於 0,則模式將被最多應用 n - 1 次,陣列的長度將不會大於 n ,而且陣列的最後一項將包含所有超出最後匹配的定界符的輸入。如果 n 為非正,那麼模式將被應用盡可能多的次數,而且陣列可以是任何長度。如果 n 為 0,那麼模式將被應用盡可能多的次數,陣列可以是任何長度,並且結尾空字串將被丟棄。

而對於函式 public string split (string regex)

該方法的作用就是使用給定的表示式和限制引數 0 來呼叫兩引數 split方法。因此,所得陣列中不包括結尾空字串

所以如果不想讓結尾的空字串被丟棄,那麼應該這樣寫:

string urls = ";a;d;d;d;n;;";

string strings = urls.split(";");

string splits = urls.split(";", -1);

for (int i = 0; i < strings.length; i++)

for (int i = 0; i < splits.length; i++)

空字串斷言

最近稍微研究了下正規表示式,在網上看了一篇正規表示式30分鐘入門教程.教程點這裡 30分鐘入門 在平衡組中講到 斷言一定匹配不成功.想了半天不明白.我是這麼理解 斷言的.a b 能夠匹配右邊不是b的a,那a 的意思就是匹配右邊什麼都沒有的a.然後我輸入了qwea發現不能匹配.感覺非常奇怪.糾結了2,...

空字元與空格字元 NULL 空字串

在許多的程式語言內,空字串的標記為兩個雙引號 而null又有以下理解 1.字面理解,null就是無效的 無價值的 2.在程式設計中,變數以null結尾,表示其後沒有可用的資料,資料讀取在此結束。3.null在資料庫中表示不知道 unknown 的資料,主要有3種意思 a 知道資料存在,但不知道具體值...

c 中字串split函式

寫這個只是用來記憶一下,時至今日才發現c 的cstring類中已經有了字串分split的函式,自己一直沒有發現,羞愧難當,不過還好我是乙個知恥後勇的人,既然今天發現了,那就記下來。cstring中有乙個strtok s函式,它是乙個分割字串安全函式,其函式原型如下 char strtok s cha...