相关包有strings,strconv
判断是否以某字符串打头/结尾 strings.HasPrefix(s string,prefix string) bool=> 对应python的str.startswith strings.HasSuffix(s string,suffix string) bool => 对应python的str.endswith
字符串分割 strings.Split(s string,sep string) []string => 对应python的str.split
返回子串索引 strings.Index(s string,sub string) int => 对应python的str.index strings.LastIndex 最后一个匹配索引
字符串连接 strings.Join(a []string,sep string) string =>对应python的str.join
字符串替换 strings.Replace(s,old,new string,n int) string =>对应python的str.replace
转为大写/小写 strings.ToUpper(s string) string strings.ToLower 对应python的str.upper,str.lower
子串个数 strings.Count(s string,sep string) int 对应python的 str.count
Partition python的str.partition在解析包时候很好用,这里封装一个
funcPartition(sstring,sepstring)(headstring,retSepstring,tailstring){
//Partition(s,sep)->(head,sep,tail)
index:=strings.Index(s,sep)
ifindex==-1{
head=s
retSep=""
tail=""
}else{
head=s[:index]
retSep=sep
tail=s[len(head)+len(sep):]
}
return
}
Partition使用
//包格式头(xy)+数据体+尾(..xy...)
//...
_,header,msg:=Partition(data,"xy")
ifheader==""{
//没有头(xy)丢包.(也有可能粘包分包导致"...x",最后一个(注意是一个)字符变成了x,这时要把前面的包丢弃,只保留一个x)
}else{
//do
} (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|