当前位置:首页 > Golang杂记 > 正文内容

Go 字符串切割技巧

6个月前 (03-19)Golang杂记500

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

Cut 函数的签名如下:

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,直接上示例:

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)
    }

}


    扫描二维码推送至手机访问。

    版权声明:本文由周伯通的博客发布,如需转载请注明出处。

    本文链接:https://www.zhoubotong.site/post/36.html

    分享给朋友:

    相关文章

    谈谈go中sync.cond的用法和理解

    引入不管从说明还是用法来看,Cond都是sync包中最难理解和使用的功能。golang官方注释中说,“Cond implements a condition variable, a rendezvou...

    go协程全局变量和局部变量

    大家可能经常会用到类似如下代码片段:package main import (    "fmt"   ...

    Go遍历struct,map,slice

    遍历结构体如何实现遍历结构体字段? 好吧,言归正传!举个例子:demo1:package main import (    "fmt...

    Go语言中的零值

    开箱即用什么叫开箱即用呢?因为Go语言的零值让程序变得更简单了,有些场景我们不需要显示初始化就可以直接用,举几个例子:切片,他的零值是nil,即使不用make进行初始化也是可以直接使用的,例如:pac...

    golang的defer踩坑汇总

    defer语句用于延迟函数调用,每次会把一个函数压入栈中,函数返回前再把延迟的函数取出并执行。延迟函数可以有参数:延迟函数的参数在defer语句出现时就已确定下来(传值的就是当前值)return先赋值...

    发表评论

    访客

    看不清,换一张

    ◎欢迎参与讨论,请在这里发表您的看法和观点。