
go字符串数组以及字符串处理集合
发布日期:2021-05-14 08:46:28
浏览次数:19
分类:精选文章
本文共 1873 字,大约阅读时间需要 6 分钟。
string操作与文件名提取实例
本文将介绍几个常见的string操作方法,并结合实际案例进行解释和演示。通过这些方法,我们可以更高效地处理字符串数据。
一、字符串修剪操作
字符串修剪是处理字符串边缘空白或特定字符的一种常用操作。我们可以通过strings.TrimSuffix
和strings.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.Replace
和strings.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] // 提取包含"=="前的内容
通过上述方法,我们可以轻松地提取文件名,并对其进行必要的处理。
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2025年04月17日 10时49分34秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
解决数据库报ORA-02289:序列不存在错误
2019-03-07
map[]和map.at()取值之间的区别
2019-03-08
成功解决升级virtualenv报错问题
2019-03-08
【SQLI-Lab】靶场搭建
2019-03-08
Xception 设计进化
2019-03-08
【Bootstrap5】精细学习记录
2019-03-08
SkyWalking性能剖析
2019-03-08
LeetCode197.打家劫舍
2019-03-08
A simple problem HDU-2522 【数学技巧】
2019-03-08
487-3279 POJ-1022【前导0~思维漏洞】
2019-03-08
Struts2-从值栈获取list集合数据(三种方式)
2019-03-08
vscode中快速生成vue模板
2019-03-08
demo---购物车的多条记录保存(cookie)
2019-03-09
参考图像
2019-03-09
设计模式(18)——中介者模式
2019-03-09
用JavaScript实现希尔排序
2019-03-09
python初学者容易犯的错误
2019-03-09