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 }