字串分割的實現

2022-07-23 08:57:11 字數 796 閱讀 4833

最近看書時,突然想到,字串分割應該很簡單,畢竟是常用的函式,如果不使用語言提供的原生方法,怎麼實現字串的分割?

發現坑也有幾個,直接碼**吧,簡單的用go語言實現了一下。

1 func split(str , seg string) string

17}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) string

ss := 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...