一个公司做两个网站,如何成功开展网络营销,wordpress书城主题,泉州学校网站开发【GO语言卵细胞级别教程】06.GO语言的字符串操作
温馨提示#xff1a; 本文中使用的项目模块均是 【05.项目创建和函数讲解】 中创建的#xff0c;具体如何创建项目#xff0c;请参考
【GO语言卵细胞级别教程】05.项目创建和函数讲解 目录#xff1a; 【GO语言卵细胞级别…【GO语言卵细胞级别教程】06.GO语言的字符串操作
温馨提示 本文中使用的项目模块均是 【05.项目创建和函数讲解】 中创建的具体如何创建项目请参考
【GO语言卵细胞级别教程】05.项目创建和函数讲解 目录 【GO语言卵细胞级别教程】06.GO语言的字符串操作1.字符串函数1.1 基本操作1.2 字符串高级操作 1.字符串函数
1.1 基本操作
统计字符串的长度使用 len(str)字符串遍历因为中文和英文在utf8编码中占用字节不一样所以遍历这里需要注意下
1. 方式1当有中文的时候要注意可以使用range str
2. 方式2可以使字符串转为切片再使用防止出现中文的时候r : []rune(str), 然后再进行遍历即可 fot i:0; i len(r);i{r[i]}
1. 方式3直接遍历会出现乱码情况如果字符串中有中文的话for i:0; i len(str);i{str[i]}字符串转整数strconv.Atoi(“66”) 返回两个值 result, err整数转字符串: strconv.ItoA(888) 返回转换的结果子串是否包含在指定的字符串中
strings.Contains(javajava, ava) 返回的是bool统计一个字符串有几个指定的子串
strings.Count(javajava, ava) 返回个数区分大小写比较字符串和不区分比较
1. 区分比较
str xxx
2. 区分比较
strings.EqualFold(go, GO)返回子串在字符串第一次出现的索引值如果没有返回默认值-1
strings.Index(javajava, ava) // 1总结实战
package mystudy
// 字符串基础知识
import (fmtstrconvstrings
)func MyPrintln(str string){if str {str myPrintln}fmt.Println()fmt.Println(--------, str, --------)
}func Zfc(){// 1.统计字符串的长度fmt.Println(1.统计字符串的长度)var str string 新年好Happy// 打印结果是14因为一个英文字符utf8 占用8个字节一个汉字占用3个字节fmt.Println(字符串新年好Happy长度, len(str))// 2.对字符串进行遍历fmt.Println(2.对字符串进行遍历)for i, value : range str {fmt.Println(Ascii 索引, i, 值, value)fmt.Printf(中文索引%d 值%c\n, i, value)}// 2.对字符串的遍历,如果有中文会出现乱码情况,全英文的话可以使用这个方法进行打印fmt.Printf(直接遍历打印)for i:0;i len(str); i{fmt.Printf(%c, str[i])}MyPrintln()// 2.使用切片方式遍历,可以直接打印出中文或者英文不乱码r : []rune(str)fmt.Println(切片方式r:, r)for i : 0 ; i len(r); i{fmt.Printf(%c, r[i])}MyPrintln()// 3.整数转字符串var numInt int 888888str2 : strconv.Itoa(numInt)fmt.Printf(str2%v, str2 type%T\n, str2, str2)// 4.字符串转整型 ASCII to Integer 缩写 Atoi,转换失败 err输出提示numInt默认值0numInt, err : strconv.Atoi(89890i)fmt.Println(numInt, err)// 5.查找子串是否在指定的字符串中, 返回的是boolresult : strings.Contains(pythonjavacgoscalapython, go)fmt.Println(查找子串是否在指定的字符串中, result)MyPrintln(统计一个字符串有几个指定的字串)// 6.统计一个字符串有几个指定的字串subStrCount : strings.Count(pythonjavacgoscalapythongo, go)fmt.Println(统计一个字符串有几个指定的字串:, subStrCount)// 7.不区分大小写字符串比较fmt.Println(strings.EqualFold(java, JavA)) // true// 8.区分大小写字符串比较 fmt.Println(java JavA) // false// 9.返回字符串第一次出现的索引值,没有的话返回默认值-1// strings.Index 是按照字节来统计下标的所以当出现中文的时候下标和看到的字符串是不一样的fmt.Println(strings.Index(pythonjavacgoscalapythongo, go))fmt.Println(strings.Index(javajava, ava))fmt.Println(strings.Index(str, 年))fmt.Printf(%c, str[strings.Index(str, H)])}// 输出结果
1.统计字符串的长度
字符串新年好Happy长度 14
2.对字符串进行遍历
Ascii 索引 0 值 26032
中文索引0 值新
Ascii 索引 3 值 24180
中文索引3 值年
Ascii 索引 6 值 22909
中文索引6 值好
Ascii 索引 9 值 72
中文索引9 值H
Ascii 索引 10 值 97
中文索引10 值a
Ascii 索引 11 值 112
中文索引11 值p
Ascii 索引 12 值 112
中文索引12 值p
Ascii 索引 13 值 121
中文索引13 值y
直接遍历打印æ°å¹´å¥½Happy
-------- myPrintln --------
切片方式r: [26032 24180 22909 72 97 112 112 121]
新年好Happy
-------- myPrintln --------
str2888888, str2 typestring
0 strconv.Atoi: parsing 89890i: invalid syntax
查找子串是否在指定的字符串中 true-------- 统计一个字符串有几个指定的字串 --------
统计一个字符串有几个指定的字串: 2
true
false
11
1
3
H1.2 字符串高级操作
字符串的替换: result1 : strings.Replace(str1, “python”, “py”, n) 参数n 代表替换几个 -1 表示所有的如果是1 那就是替换一个 2代表替换两次从左至右
// 把str1字符串中的python替换为py 替换所有的
result1 : strings.Replace(str1, python, py, -1)按照指定的某个字符串进行切割 strings.Split(str1, “xx”)
result2 : strings.Split(str1, py)字符串的字母进行大小写转换 小写 strings.ToLower(str1) 大写strings.ToUpper(str1)左右空格去掉 strings.TrimSpace()
MyPrintln(5.字符串字母大小写转换)
str2 : 新年好呀 祝福您 万事如意
fmt.Println(str2)
fmt.Println(strings.TrimSpace(str2))去掉左右两边的某个字符
strings.Trim(美国中国加油中国加油美国, 美国)去掉左边或者右边的某个字符串
fmt.Println(strings.TrimLeft(美国中国加油中国加油美国, 美国))
fmt.Println(strings.TrimRight(美国中国加油中国加油美国, 美国))判断字符串是否以某个字符串开头
strings.HasPrefix(https://www.gdzs.com, http)判断字符串是否以某个字符串结尾
fmt.Println(strings.HasSuffix(https://www.gdzs.com, com))总结 func Gstr(){MyPrintln(1.字符串高级操作)var str1 string javapythongoPythonjava你好python// 1.字符串的替换 参数-1 代表替换几个 -1 表示所有的如果是1 那就是替换一个result1 : strings.Replace(str1, python, py, -1)fmt.Println(result1)fmt.Println(strings.Replace(str1, python, py, 1))// 2.字符串分割; 返回一个字符串数组MyPrintln(2.字符串分割)result2 : strings.Split(str1, py)fmt.Println(result2)for i, v : range result2 {fmt.Println(i, v)}// 4.字符串的字母进行大小写转换MyPrintln(4.字符串字母大小写转换)fmt.Println(strings.ToLower(str1))fmt.Println(strings.ToUpper(str1))// 5.左右空格去掉MyPrintln(5.字符串字母大小写转换)str2 : 新年好呀 祝福您 万事如意 fmt.Println(str2)fmt.Println(strings.TrimSpace(str2))// 6.去掉左右两边的某个字符MyPrintln(6.去掉左右两边的某个字符)fmt.Println(strings.Trim(美国中国加油中国加油美国, 美国))// 7.去掉左边或者右边的某个字符串MyPrintln(7.去掉左边或者右边的某个字符串)fmt.Println(strings.TrimLeft(美国中国加油中国加油美国, 美国))fmt.Println(strings.TrimRight(美国中国加油中国加油美国, 美国))// 8.判断字符串是否以某个字符串开头MyPrintln(8.判断字符串是否以某个字符串开头)fmt.Println(strings.HasPrefix(https://www.gdzs.com, http))// 9.判断字符串是否以某个字符串结尾MyPrintln(8.判断字符串是否以某个字符串开头)fmt.Println(strings.HasSuffix(https://www.gdzs.com, com))
}