go字符串数组以及字符串处理集合
发布日期:2021-05-14 08:46:28 浏览次数:19 分类:精选文章

本文共 1873 字,大约阅读时间需要 6 分钟。

string操作与文件名提取实例

本文将介绍几个常见的string操作方法,并结合实际案例进行解释和演示。通过这些方法,我们可以更高效地处理字符串数据。

一、字符串修剪操作

字符串修剪是处理字符串边缘空白或特定字符的一种常用操作。我们可以通过strings.TrimSuffixstrings.TrimPrefix两个函数来实现这一点。

示例代码如下:

k := "1,2,3,"
k = strings.TrimSuffix(k, ",") // 修剪后缀,得到 "1,2,3"
k = strings.TrimPrefix(k, "1,") // 修剪前缀,得到 "2,3"

这段代码首先从字符串末尾移除一个逗号,然后从字符串开头移除"1,"。最终,k变量的值变为"2,3"。

二、字符串分割与索引查找

有时候,我们需要将字符串分割成多个部分。strings.Split函数可以很好地完成这一任务。

示例代码如下:

strArr := strings.Split(k, ",") // 分隔后得到数组 ["2", "3"]

此外,strings.Index函数可以帮助我们查找字符串中某个字符的位置。需要注意的是,如果查找的字符不存在,strings.Index会返回-1。

示例代码如下:

index := strings.Index(k, ",") // 查找逗号的位置,返回4

三、字符串替换操作

在某些场景下,我们需要对字符串中的某些字符进行替换。strings.Replacestrings.ReplaceAll函数可以满足这一需求。

示例代码如下:

k := "1,2,3,4,5,6,7,8,9,10,11,12"
kNew := strings.Replace(k, ",", "|", 5) // 替换前5个逗号为竖线,结果为"1|2|3|4|5|6,7,8,9,10,11,12"
kNew := strings.ReplaceAll(k, ",", "|") // 替换所有逗号为竖线,结果为"1|2|3|4|5|6|7|8|9|10|11|12"

替换完成后,我们可以通过strings.TrimSpace函数去除字符串的首尾空白:

kNew = kNew + " this is test !" // 添加测试内容
fmt.Println(strings.TrimSpace(kNew)) // 输出 "this is test 1|2|3|4|5|6|7|8|9|10|11|12"

四、数组判断与文件名提取

在实际开发中,我们经常需要判断一个字符串是否存在于某个数组中。可以通过编写自定义函数来实现这一点。

示例代码如下:

scopes := []string{"name1", "name2", "name3"}
if in("name1", scopes) {
fmt.Println("存在")
} else {
fmt.Println("不存在")
}

函数in的实现如下:

func in(target string, str_array []string) bool {
for _, element := range str_array {
if target == element {
return true
}
}
return false
}

此外,对于文件名提取,我们可以使用path包中的Base函数来提取文件名。

示例代码如下:

fullFilename := "https://tx2.a.yximgs.com/uhead/AB/2018/12/25/15/BMjAxODEyMjUxNTA1MzBfMTAwMjIwMDQzN18xX2hkMjE0XzczMA==_s.jpg"
filename := path.Base(fullFilename) // 提取文件名部分 "BMjAxODEyMjUxNTA1MzBfMTAwMjIwMDQzN18xX2hkMjE0XzczMA==_s.jpg"
filenameLen := strings.Index(filename, "==") // 查找"=="的位置
filename := filename[:filenameLen+2] // 提取包含"=="前的内容

通过上述方法,我们可以轻松地提取文件名,并对其进行必要的处理。

上一篇:go--microSocket服务端 php客户端
下一篇:go语音 post和get请求

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2025年04月17日 10时49分34秒