golang 字符串函数
1. 统计字符串的长度,按字节进行统计
package main
import "fmt"
func main() {
var s1 string = "hello,世界"
fmt.Printf("s1字符串的长度为:%v", len(s1)) //汉字为utf-8为3个字节
}
执行结果
s1字符串的长度为:12
2. 字符串遍历
2.1 for range遍历
package main
import (
"fmt"
)
func main() {
var s1 string = "hello,世界"
for key1, var1 := range s1 {
fmt.Printf("下标为%d对应的字符为:%c\n", key1, var1) //汉字为utf-8为3个字节
}
}
执行结果
下标为0对应的字符为:h
下标为1对应的字符为:e
下标为2对应的字符为:l
下标为3对应的字符为:l
下标为4对应的字符为:o
下标为5对应的字符为:,
下标为6对应的字符为:世
下标为9对应的字符为:界
2.2. 切片遍历
package main
import (
"fmt"
)
func main() {
var s1 string = "hello,世界"
ru := []rune(s1) //将字符串转为切片
for i := 0; i < len(ru); i++ {
fmt.Printf("%c\n", ru[i])
}
}
执行结果
h
e
l
l
o
,
世
界
3.字符串与整数互相转换
3.1 字符串转与整数
package main
import (
"fmt"
"strconv"
)
func main() {
var s2 string = "210"
n2, _ := strconv.Atoi(s2) //strconv.Atoi返回两个值,第一个值为int,第二个值为error,忽略error
fmt.Printf("n2的值为:%v,n2的类型为%T", n2, n2)
}
执行结果
n2的值为:210,n2的类型为int
3.2 整数转字符串
package main
import (
"fmt"
"strconv"
)
func main() {
var n2 int = 210
s2 := strconv.Itoa(n2)
fmt.Printf("n2的值为:%v,n2的类型为%T", s2, s2)
}
执行结果
n2的值为:210,n2的类型为string
4. 统计一个字符串有几个指定的子串
package main
import (
"fmt"
"strings"
)
func main() {
var s3 string = "helloutrnball"
conunt := strings.Count(s3, "ll")
fmt.Printf("s3字符串中出现连续ll的次数为:%v", conunt)
}
执行结果
s3字符串中出现连续ll的次数为:2
5. 查找子串是否在指定的字符串中
package main
import (
"fmt"
"strings"
)
func main() {
var s4 string = "abcdjekkbfjja"
include := strings.Contains(s4, "jj")
fmt.Println(include)
}
执行结果
true
6.不区分大小写的字符串比较
package main
import (
"fmt"
"strings"
)
func main() {
flag := strings.EqualFold("WORLD", "world")
fmt.Println(flag)
}
执行结果
true
7. 返回子串在字符串第一次出现的索引值,如果没有返回-1
package main
import (
"fmt"
"strings"
)
func main() {
index1 := strings.Index("aabdcjakksnlfaknl", "nl") //nl在这段字符串中的第一次出现位置
fmt.Println(index1)
index2 := strings.Index("aabdcjakksnlfaknl", "kl") //nl在这段字符串中的第一次出现位置,没有返回-1
fmt.Println(index2)
}
执行结果
10
-1
8. 字符串的替换
package main
import (
"fmt"
"strings"
)
func main() {
s3 := strings.Replace("abcnaljakndal", "al", "tt", 1) //将第一个字符al替换为tt
s4 := strings.Replace("abcnaljakndal", "al", "tt", -1) //当最后的n<0,替换所有匹配字符
fmt.Println(s3)
fmt.Println(s4)
}
执行结果
abcnttjakndal
abcnttjakndtt
9. 按照指定的某个字符,为分割标识,将一个学符串拆分成字符串数组
package main
import (
"fmt"
"strings"
)
func main() {
s1 := strings.Split("calkjghakanmxml1222", "a") //将a做为分隔符,将分割的内容返回为切片
s2 := strings.Split("calkjghakanmxml1222", "") //不指定分隔符,默认会将每个字符为单位分割
fmt.Printf("s1的类型为:%T,s1的值为:%v\n", s1, s1)
fmt.Printf("s2的类型为:%T,s2的值为:%v", s2, s2)
}
执行结果
s1的类型为:[]string,s1的值为:[c lkjgh k nmxml1222]
s2的类型为:[]string,s2的值为:[c a l k j g h a k a n m x m l 1 2 2 2]
10. 将字符串的字母进行大小写的转换
package main
import (
"fmt"
"strings"
)
func main() {
s5 := strings.ToLower("ABCabc") //将字符都转成小写
s6 := strings.ToUpper("ABCabc") //将字符都转成大写
fmt.Println(s5)
fmt.Println(s6)
}
执行结果
abcabc
ABCABC
11.去掉字符串两边的空格
package main
import (
"fmt"
"strings"
)
func main() {
s7 := strings.TrimSpace(" abcde ")
fmt.Println(s7)
}
执行结果
abcde
12. 去掉左右两边指定的字符
package main
import (
"fmt"
"strings"
)
func main() {
s8 := strings.Trim("-***abcde--", "-*")
fmt.Println(s8)
}
执行结果
abcde
13. 去掉字符串左边指定的字符
package main
import (
"fmt"
"strings"
)
func main() {
s8 := strings.TrimLeft("-***abcde--***", "-*")
fmt.Println(s8)
}
执行结果
abcde--***
14。 去掉字符串右边指定的字符
package main
import (
"fmt"
"strings"
)
func main() {
s8 := strings.TrimRight("-***abcde--***", "-*")
fmt.Println(s8)
}
执行结果
-***abcde
15. 判断字符串是否以指定的字符串开头
package main
import (
"fmt"
"strings"
)
func main() {
s9 := strings.HasPrefix("acbc", "ac")
fmt.Println(s9)
}
执行结果
true
16. 判断字符串是否以指定的字符串结束
package main
import (
"fmt"
"strings"
)
func main() {
s9 := strings.HasSuffix("acbc", "bc")
fmt.Println(s9)
}
执行结果
true
golang 字符串函数的更多相关文章
- Golang字符串函数认识(二)
package main import ( "fmt" "strings" ) func main(){ //返回字符在指定字符串中最后一次出现的位置 last ...
- Golang字符串函数认识(一)
package main import ( "fmt" "strings" "strconv" ) func main(){ //返回字符串 ...
- GO语言的进阶之路-Golang字符串处理以及文件操作
GO语言的进阶之路-Golang字符串处理以及文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们都知道Golang是一门强类型的语言,相比Python在处理一些并发问题也 ...
- [转] golang 字符串比较是否相等
1 前言 strings.EqualFold不区分大小写,"==" 区分且直观. 2 代码 golang字符串比较的三种常见方法 fmt.Println("go" ...
- golang(06)函数介绍
原文链接 http://www.limerence2017.com/2019/09/11/golang11/#more 函数简介 函数是编程语言中不可缺少的部分,在golang这门语言中函数是一等公民 ...
- [Golang]字符串拼接方式的性能分析
本文100%由本人(Haoxiang Ma)原创,如需转载请注明出处. 本文写于2019/02/16,基于Go 1.11.至于其他版本的Go SDK,如有出入请自行查阅其他资料. Overview 写 ...
- ThinkPHP 模板substr的截取字符串函数
ThinkPHP 模板substr的截取字符串函数在Common/function.php加上以下代码 /** ** 截取中文字符串 **/ function msubstr($str, $start ...
- SQL字符串函数
LEN() :计算字符串长度(字符的个数.)datalength();//计算字符串所占用的字节数,不属于字符串函数.测试varchar变量与nvarchar变量存储字符串a的区别.见备注1.LOWE ...
- Python3中的字符串函数学习总结
这篇文章主要介绍了Python3中的字符串函数学习总结,本文讲解了格式化类方法.查找 & 替换类方法.拆分 & 组合类方法等内容,需要的朋友可以参考下. Sequence Types ...
- TSQL 字符串函数:截断和查找
字符串截断函数是指:Stuff 和 SubString,字符串查找函数是:CharIndex 和 PatIndex 一,SubString 截取子串 最常用的字符串函数,用于截取特定长度的子串. SU ...
随机推荐
- 通过Google Cloud Storage(GCS)管理Terraform的状态State
管理Terraform状态文件的最佳方式是通过云端的统一的存储,如谷歌云就用GCS. 首先要创建一个Bucket: $ gsutil mb -p pkslow -l us-west1 -b on gs ...
- java入门与进阶-P1.3+P1.4
准备一个java编程软件 eclipse官网: Enabling Open Innovation & Collaboration | The Eclipse Foundation 他是一个免费 ...
- idea debug---启动超级慢,提示”Method breakpoints may dramatically slow down debugging“的解决办法
https://blog.csdn.net/hanqing456/article/details/111878982 1.问题项目正常启动的时候没问题,debug模式就卡住了,很久不动.我推测是哪个断 ...
- java并发AQS中应用:以acquire()方法为例来分析线程间的同步与协作
谈到java中的并发,我们就避不开线程之间的同步和协作问题,谈到线程同步和协作我们就不能不谈谈jdk中提供的AbstractQueuedSynchronizer(翻译过来就是抽象的队列同步器)机制: ...
- 快学会这个技能-.NET API拦截技法
大家好,我是沙漠尽头的狼. 本文先抛出以下问题,请在文中寻找答案,可在评论区回答: 什么是API拦截? 一个方法被很多地方调用,怎么在不修改这个方法源码情况下,记录这个方法调用的前后时间? 同2,不修 ...
- UOJ NOI Round #6
总结 \(\text{Day1}\) 只打了 \(T1\),想正解无果以致于没时间打暴力 \(\text{T1}\) 考虑到最后一个面基者要么落在点上,要么落在边上 所以可以枚举点和边,统计最久的落在 ...
- 一文详解ATK Loss论文复现与代码实战
摘要:该方法的主要思想是使用数值较大的排在前面的梯度进行反向传播,可以认为是一种在线难例挖掘方法,该方法使模型讲注意力放在较难学习的样本上,以此让模型产生更好的效果. 本文分享自华为云社区<AT ...
- Postgresql通过pg_waldump来分析pg_wal日志
一.简介 读取MySQL的binlog 并将其解析为可读的日志是一件简单的事情,mysqlbinlog 命令就可以将bin日志解析, 那postgresql是否可以将pg_wal 中的日志进行解析,并 ...
- ElasticSearch 实现分词全文检索 - 概述
需求 做一个类似百度的全文搜索功能 所用的技术如下: ElasticSearch Kibana 管理界面 IK Analysis 分词器 SpringBoot ElasticSearch 简介 ES ...
- Python爬虫-爬取手机应用市场中APP下载量
一.首先是爬取360手机助手应用市场信息,用来爬取360应用市场,App软件信息,现阶段代码只能爬取下载量,如需爬取别的信息,请自行添加代码. 使用方法: 1.在D盘根目录新建.tet文件,命名为Ap ...