package mySql import ( "strings" ) type StringSplit struct { str string sep string } func NewStringSplit(str string, sep string) *StringSplit { return &StringSplit{str: str, sep: sep} } func (t *StringSplit) chooseIndexStr(index int) (string, bool) { //劈开 countSplit := strings.Split(t.str, t.sep) //获取对应的字符串,index是从0开始算。 if len(countSplit) <= index { return "", false } return countSplit[index], true } // RunIndexFunc 取第index个,从0开始数,执行。 func (t *StringSplit) RunIndexFunc(index int, f func(str string)) { str, exist := t.chooseIndexStr(index) if exist { f(str) } } // RunCountFunc 如果分割出来是count个则执行 func (t *StringSplit) RunCountFunc(count int, f func(strArr []string)) { countSplit := strings.Split(t.str, t.sep) if len(countSplit) == count { f(countSplit) } } // RunCount1Func 常用方法封装,快捷方法,count=1 func (t *StringSplit) RunCount1Func(f func(str string)) { t.RunCountFunc(1, func(strArr []string) { f(strArr[0]) }) } // RunCount2Func 常用方法封装,快捷方法,count=2 func (t *StringSplit) RunCount2Func(f func(str1, str2 string)) { t.RunCountFunc(2, func(strArr []string) { f(strArr[0], strArr[1]) }) }