俗话说,万事开头难,今天是第三篇笔记,我不打算把所有的知识点都记录下来,在这一章中,我将详细分析字符串。字符串是编程中的底部基础,很多语言中的字符串基本上都一模一样,只有一些小细节不同,字符串处理在我大学课程中老师也有花费一节课进行讲解,但是我的实践并不多,所以这一部分很多都模棱两可,我打算这这一部分笔记中进行一些收录整理。在这次学习过程中,有字符串的一些便捷操作和字符串格式化两部分知识点,以下我将对每一行代码进行详细的分析理解。
字符串处理
a := "hello"
fmt.Println(strings.Contains(a, "ll")) // true
fmt.Println(strings.Count(a, "l")) // 2
fmt.Println(strings.HasPrefix(a, "he")) // true
fmt.Println(strings.HasSuffix(a, "llo")) // true
fmt.Println(strings.Index(a, "ll")) // 2
fmt.Println(strings.Join([]string{"he", "llo"}, "-")) // he-llo
fmt.Println(strings.Repeat(a, 2)) // hellohello
fmt.Println(strings.Replace(a, "e", "E", -1)) // hEllo
fmt.Println(strings.Split("a-b-c", "-")) // [a b c]
fmt.Println(strings.ToLower(a)) // hello
fmt.Println(strings.ToUpper(a)) // HELLO
fmt.Println(len(a)) // 5
上述代码就是学习过程中一些常见的字符串处理操作,我自己是用的不多,很多都不清楚,可以借助这次学习过程进行详细的总结一下,首先a是一个字符串,接下来的所有处理都是围绕着字符串a进行处理分析。
- strings.Contains(a, "ll")中是用来判断字符串a中是否有“ll”字符,如果有就输出true,没有就输出false
- strings.Count(a, "l")中是用来判断字符串a中有几个“l”字符
- strings.HasPrefix(a, "he")中是来判断字符串a是否是以“he”字符开头,正确就是true,错误就是false
- strings.HasSuffix(a, "llo")是用来判断字符串a是否是以“llo”字符开头,输出同上
- strings.Index(a, "ll")中是用于查找字符串的位置,从0开始查找
- strings.Join([]string{"he", "llo"}, "-")中是用来连接多个字符串,输出he-llo
- strings.Repeat(a, 2)中是重复多个字符串,输出hellohello
- strings.Replace(a, "e", "E", -1)中是来替换字符或者字符串,若后面的数字没有次数,说明没有限制次数
- strings.Split("a-b-c", "-")中是用后面的字符来切割前面的字符
- strings.ToLower(a)中是使字符串a全变成小写
- strings.ToUpper(a)中是使字符串a全变成大写
字符串格式化
func main() {
s := "hello"
n := 123
p := point{1, 2}
fmt.Println(s, n) // hello 123
fmt.Println(p) // {1 2}
fmt.Printf("s=%v\n", s) // s=hello
fmt.Printf("n=%v\n", n) // n=123
fmt.Printf("p=%v\n", p) // p={1 2}
fmt.Printf("p=%+v\n", p) // p={x:1 y:2}
fmt.Printf("p=%#v\n", p) // p=main.point{x:1, y:2}
f := 3.141592653
fmt.Println(f) // 3.141592653
fmt.Printf("%.2f\n", f) // 3.14
}
- 在Go语言中,可以通过%v来输出各种类型的变量,不再像C语言中的%n代表整数,%c代表字符等等繁琐的过程
- fmt.Printf("p=%+v\n", p),其中%+v可以输出更详细的结构
- fmt.Printf("p=%#v\n", p),其中%#v可以输出更加详细的结构,由上面输出可以看出区别
- 其中对于小数,可以通过%.nf中的n的数字来控制小数个保留个数
这一章笔记主要就是我在字符串学习过程中的一些知识点整理,这些很多我都忘了,再次学习去捡起来,学习就是一个重复的过程,没有人是过目不忘的天才,就是需要多次学习,多次重复使用,这样才能掌握的更加牢固。果然,温故而知新,可以为师也,这都是古人留下的大智慧啊。