golang strings包的Replace的使用说明

 更新时间:2021年03月22日 11:28:03   作者:kph_Hajash  
这篇文章主要介绍了golang strings包的Replace的使用说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


函数声明:

func Trim(s string, cutset string) string

官方描述:

返回将 s 前后端所有 cutset 包含的 utf-8 码值都去掉的字符串。

示例代码:

package main
import (
 "fmt"
 "strings"
 _ "test/subpac"
)
func main(){
 fmt.Println("[ !!! Achtung! Achtung! !!! ]:[]:[", strings.Trim(" !!! Achtung! Achtung! !!! ", "") ,"\b]")
 fmt.Println("[ !!! Achtung! Achtung! !!! ]:[ ]:[", strings.Trim(" !!! Achtung! Achtung! !!! ", " ") ,"\b]")
 fmt.Println("[ !!! Achtung! Achtung! !!! ]:[!]:[", strings.Trim(" !!! Achtung! Achtung! !!! ", "!") , "\b]")
 fmt.Println("[ !!! Achtung! Achtung! !!! ]:[! ]:[", strings.Trim(" !!! Achtung! Achtung! !!! ", "! "), "\b]" )
}

输出结果:

[ !!! Achtung! Achtung! !!! ]:[]:[ !!! Achtung! Achtung! !!! ]
[ !!! Achtung! Achtung! !!! ]:[ ]:[ !!! Achtung! Achtung! !!!]
[ !!! Achtung! Achtung! !!! ]:[!]:[ !!! Achtung! Achtung! !!! ]
[ !!! Achtung! Achtung! !!! ]:[! ]:[ Achtung! Achtung]

第一行 cutset 为空(不是空格):因此输出原字符串。

第二行 cutset 为 ” “(空格):因此串首尾的两个空格字符被删除了。

第三行 cutset 为 “!” :收尾未匹配到该 cutset,因此输出原字符串。

第四行 cutset 为 “! “:首先匹配到空格,串首尾空格字符被删除,然后匹配到 “!”,继续删除首尾的各三个 “!”,于是得到该结果串。

注:输出结果多余的空格是因为 Println 在输出多个串时会在串之间添加空格。如下:

fmt.Println("123", "456", "789")

输出:

123 456 789

补充:golang_strings:trim分割“/“出现的坑及解决办法

问题描述

strings.Trim和strings.TrimLeft在分割带有“https://”的字符串时,会多分割一些字符,对分割结果造成影响。

推测原因:

TrimLeft 只针对utf-8字符进行处理,相关处理可能出现问题。// todo源码没看太懂,哪位大佬明白的可以帮忙解释下

解决办法

测试代码如下:

package main
import (
 "fmt"
 "strings"
)
// TrimLeft和Trim分割字符串时,对于有"/"的字符串切割会出现问题
// 切割前缀使用TrimPrefix,切割后缀使用TrimSuffix进行代替
func main() {
 Url := "https://www.baidu.com/material/list"
 fmt.Println(strings.TrimLeft(Url, "https://www.baidu.com")) // erial/list
 fmt.Println(strings.TrimPrefix(Url, "https://www.baidu.com")) // /material/list
 Url2 := ":www.baidu.com/material/list"
 fmt.Println(strings.Trim(Url, "https://www.baidu.com")) // erial/l
 fmt.Println(strings.Trim(Url2, ":www.baidu.com"))  // /material/list
 s := "Goodbye,, world!"
 fmt.Println(strings.TrimSuffix(s, ", world!")) // Goodbye,
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • go语言K8S 的 informer机制浅析

    go语言K8S 的 informer机制浅析

    这篇文章为大家主要介绍了go语言K8S 的 informer机制浅析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • go微服务PolarisMesh源码解析服务端启动流程

    go微服务PolarisMesh源码解析服务端启动流程

    这篇文章主要为大家介绍了go微服务PolarisMesh源码解析服务端启动流程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • golang struct, map, json之间的相互转换

    golang struct, map, json之间的相互转换

    本文用于记录我在 golang 学习阶段遇到的类型转换问题,针对的是 json 、map、struct 之间相互转换的问题,感兴趣的可以了解一下
    2021-06-06
  • Go中变量命名规则与实例

    Go中变量命名规则与实例

    命名规则涉及变量、常量、全局函数、结构、接口、方法等的命名,下面这篇文章主要给大家介绍了关于Go中变量命名的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-01-01
  • Go类型安全的HTTP请求示例详解

    Go类型安全的HTTP请求示例详解

    这篇文章主要为大家介绍了Go类型安全的HTTP请求示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Go递归修改文件名的实例代码

    Go递归修改文件名的实例代码

    这篇文章主要介绍了Go递归修改文件名的实例代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的饿参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • 详解Go语言中的数据库操作

    详解Go语言中的数据库操作

    数据库是应用开发中必须要掌握的技巧。这篇文章主要和大家介绍一下Go语言中相关的数据库操作,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2023-02-02
  • Go1.21新增slices包的用法详解

    Go1.21新增slices包的用法详解

    Go 1.21新增的 slices 包提供了很多和切片相关的函数,可以用于任何类型的切片,这篇文章主要来和大家介绍一下slices包中相关函数的用法,需要的可以参考一下
    2023-08-08
  • 详解Go语言中结构体与JSON间的转换

    详解Go语言中结构体与JSON间的转换

    这篇文章主要为大家详细介绍了Go语言中结构体与JSON间的转换,文中的示例代码讲解详细,对学习Go语言有一定的帮助,需要的可以参考一下
    2022-12-12
  • Go语言实现字符串切片赋值的方法小结

    Go语言实现字符串切片赋值的方法小结

    这篇文章主要给大家介绍了Go语言实现字符串切片赋值的两种方法,分别是在for循环的range中以及在函数的参数传递中实现,有需要的朋友们可以根据自己的需要选择使用。下面来一起看看吧。
    2016-10-10

最新评论