gitee.com/curryzheng/dm@v0.0.1/util/zzr.go (about)

     1  /*
     2   * Copyright (c) 2000-2018, 达梦数据库有限公司.
     3   * All rights reserved.
     4   */
     5  
     6  package util
     7  
     8  func Split(s string, sep string) []string {
     9  	var foot = make([]int, len(s)) // 足够的元素个数
    10  	var count, sLen, sepLen = 0, len(s), len(sep)
    11  	for i := 0; i < sLen; i++ {
    12  		// 处理 s == “-9999-1" && seperators == "-"情况
    13  		if i == 0 && sLen >= sepLen {
    14  			if s[0:sepLen] == sep {
    15  				i += sepLen - 1
    16  				continue
    17  			}
    18  		}
    19  		for j := 0; j < sepLen; j++ {
    20  			if s[i] == sep[j] {
    21  				foot[count] = i
    22  				count++
    23  				break
    24  			}
    25  		}
    26  	}
    27  	var ret = make([]string, count+1)
    28  	if count == 0 {
    29  		ret[0] = s
    30  		return ret
    31  	}
    32  	ret[0] = s[0:foot[0]]
    33  	for i := 1; i < count; i++ {
    34  		ret[i] = s[foot[i-1]+1 : foot[i]]
    35  	}
    36  	ret[count] = s[foot[count-1]+1:]
    37  	return ret
    38  }