字符串分割的实现

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 }

 

以上是关于字符串分割的实现的主要内容,如果未能解决你的问题,请参考以下文章

算法实现将输入的英语句子反过来输出

如何标记从卷积神经网络的分割算法生成的图像片段?

delphi如何按固定的分隔符来分割字符串,并且把分割出来的字符串放到数组中?具体的代码如何实现?

字符串分割strtok_s

131. 分割回文串

Java 求解划分字母区间