golang -- 字符串操作
flyking · · 9293 次点击 · · 开始浏览相关包有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在解析包时候很好用,这里封装一个func Partition(s string, sep string) (head string, retSep string, tail string) { // Partition(s, sep) -> (head, sep, tail) index := strings.Index(s, sep) if index == -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")
if header == "" {
// 没有头(xy)丢包. (也有可能粘包分包导致 "...x", 最后一个(注意是一个)字符变成了x, 这时要把前面的包丢弃,只保留一个x)
} else {
// do
}
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
相关包有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在解析包时候很好用,这里封装一个func Partition(s string, sep string) (head string, retSep string, tail string) { // Partition(s, sep) -> (head, sep, tail) index := strings.Index(s, sep) if index == -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")
if header == "" {
// 没有头(xy)丢包. (也有可能粘包分包导致 "...x", 最后一个(注意是一个)字符变成了x, 这时要把前面的包丢弃,只保留一个x)
} else {
// do
}