最近看書時,突然想到,字串分割應該很簡單,畢竟是常用的函式,如果不使用語言提供的原生方法,怎麼實現字串的分割?
發現坑也有幾個,直接碼**吧,簡單的用go語言實現了一下。
1 func split(str , seg string) string17}18ifb25
}26var ss string
27if n!=0
36return
ss37
}38 ss = make(string,1
) //不能分割的話,也應該返回
39 ss[0] =str
40return
ss41 }
上面的示例有許多效能優化空間,主要是減少記憶體分配次數。用了個count啊,⊙︿⊙
func gensplit(str, seg string) stringss := make(string, c+1)
strlen :=len(str)
seglen :=len(seg)
a := 0
//上一次的位置
n := 0
//for i := 0; i <= strlen-seglen; i++
b := true
for j := 0; j < seglen; j++
}ifb
}ss[n] =str[a:]
return
ss}
和golang原生的方法比較了下,還是有點差距,看來golang的效能,真的是夠浪的。
c 實現字串分割
類似於python,shell,perl等語言都提供了方便的split 介面,用以分割字串。c c需要自己寫,這樣耗時耗力還沒效率,沒保障的方法,當然是需要避免的。又是強大的boost庫提供了方便。h檔案 ifndef dirfileopt hhhh define dirfileopt hhhh i...
php實現 字串分割
str split 6 arr str split input,8 str pad 8 arr count arr 1 str pad arr count arr 1 8,0 str pad right 連續輸入字串,請按長度為8拆分每個字串後輸出到新的字串陣列 長度不是8整數倍的字串請在後面補數字...
Lua 實現字串的分割
在開發過程中,經常會用到字串分割,如c 中的string.split函式,把乙個字串按某個子字串分割成乙個字串陣列。基本思想 使用lua自帶的string.gmatch 函式實現,此函式可以對乙個字串做正規表示式匹配,返回乙個迭代器。分割字串 param str string 元字串 param s...