字符串分割的实现
Posted shengunershu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串分割的实现相关的知识,希望对你有一定的参考价值。
最近看书时,突然想到,字符串分割应该很简单,毕竟是常用的函数,如果不使用语言提供的原生方法,怎么实现字符串的分割?
发现坑也有几个,直接码代码吧,简单的用go语言实现了一下。
1 func split(str , seg string) []string { 2 st := []rune(str) 3 sr := []rune(seg) 4 L := make([]int,len(st)/2) //起始位置索引 5 R := make([]int,len(st)/2) //结束位置索引 6 7 n:=0//分割计数 8 a:=0//上一次的位置 9 for i:=0; i <= len(st)-len(sr); i++ {//注意长度 10 b := true 11 12 for j:=0 ; j < len(sr); j++ { 13 if st[i+j]!=sr[j]{ 14 b=false 15 break 16 } 17 } 18 if b{ 19 L[n]=a 20 R[n]=i 21 a=i+len(sr) 22 i=a 23 n++ 24 } 25 } 26 var ss []string 27 if n!=0{ 28 L[n]=a //注意:可分割时,不要忘了最末尾的那一个 29 R[n]=len(st) 30 ss = make([]string,n+1) 31 for i := 0; i <= n; i++ { 32 x := L[i] 33 y := R[i] 34 ss[i] = string(st[x:y]) 35 } 36 return ss 37 } 38 ss = make([]string,1) //不能分割的话,也应该返回 39 ss[0] = str 40 return ss 41 }
以上是关于字符串分割的实现的主要内容,如果未能解决你的问题,请参考以下文章