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

Go 字符串切割技巧

3个月前 (03-19)Golang杂记197

标准库专门提供了一个包 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)
    }

}


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

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

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

    分享给朋友:

    相关文章

    Go map定义的几种方式以及修改技巧

    直入正题,我们看下以下代码:package main import (    "encoding/json"  ...

    Go channel 协程为什么是安全的

        Channel跟java/php的 thread不一样,首先channel是协程不是线程。channel不会产生新的线程,自然不会涉及到新的进程或者线程...

    windows下编译linux可执行程序

    开发中,我们可以在Windows下编译Linux 64位可执行程序,首先获取目标系统所支持的构架,比如x86/x64/arm64/arm 等等。在 linux 系统中,我们可以使用命令 uname -...

    Go easyjson使用技巧

    Go easyjson使用技巧

    如果使用go语言自带的json库,使用的是反射,而go语言中反射性能较低。easyjson就是一个比较好的替代方案。esayjson安装(https://gitcode.net/mirrors/mai...

    发表评论

    访客

    看不清,换一张

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