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

Go 字符串切割技巧

5个月前 (03-19)Golang杂记339

标准库专门提供了一个包 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://www.zhoubotong.site/post/36.html

    分享给朋友:

    相关文章

    关于Go的内存对齐

    关于Go的内存对齐

    今天看到群里有人提到内存对齐的东西,网上查阅了golang相关的内存对齐资料,特意整理了下,希望对大家有帮助。看完这篇介绍。我们将获得以下知识点:1.什么是内存对齐?2.为什么需要内存对齐?3.如何进...

    Go遍历struct,map,slice

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

    golang的defer踩坑汇总

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

    Golang接口型函数使用技巧

    什么是接口型函数?顾名思义接口函数指的是用函数实现接口,这样在调用的时候就会非常简便,这种方式适用于只有一个函数的接口。这里以迭代一个map为例,演示这一实现的技巧。常规接口实现defer语句用于延迟...

    发表评论

    访客

    看不清,换一张

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