Go 字符串切割技巧

原文链接:http://www.zhoubotong.site/post/36.html

 标准库专门提供了一个包 strings 进行字符串的操作,随着go1.18新增的 Cut 函数,字符串处理也更加方便了。  

Cut 函数的签名如下:

1
func Cut(s, sep string) (before, after string, found bool)  

将字符串 s 在第一个 sep 处切割为两部分,分别存在 before 和 after 中。如果 s 中没有 sep,返回 s,"",false。

废话不多说,举个例子:

从 192.168.0.1:80 中获取 ip 和 port,直接上示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package main
 
import (
    "fmt"
    "strings"
)
 
func main() {
    //方法一
    addr := "192.168.0.1:80"
    pos := strings.Index(addr, ":")
    if pos == -1 {
        panic("非法地址")
    }
    ip, port := addr[:pos], addr[pos+1:]
    fmt.Println(ip, port)
 
    //方法二
    ip, port, ok := strings.Cut(addr, ":")
    if ok {
        fmt.Println(ip, port)
    }
    //方法三
    str := strings.Split(addr, ":")
    if len(str) == 2 {
        ip := str[0]
        port := str[1]
        fmt.Println(ip, port)
    }
 
}

  

posted @   周伯通之草堂  阅读(1713)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示