青训营学习笔记第三篇 | 青训营

56 阅读3分钟

俗话说,万事开头难,今天是第三篇笔记,我不打算把所有的知识点都记录下来,在这一章中,我将详细分析字符串。字符串是编程中的底部基础,很多语言中的字符串基本上都一模一样,只有一些小细节不同,字符串处理在我大学课程中老师也有花费一节课进行讲解,但是我的实践并不多,所以这一部分很多都模棱两可,我打算这这一部分笔记中进行一些收录整理。在这次学习过程中,有字符串的一些便捷操作和字符串格式化两部分知识点,以下我将对每一行代码进行详细的分析理解。

字符串处理

     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的数字来控制小数个保留个数

这一章笔记主要就是我在字符串学习过程中的一些知识点整理,这些很多我都忘了,再次学习去捡起来,学习就是一个重复的过程,没有人是过目不忘的天才,就是需要多次学习,多次重复使用,这样才能掌握的更加牢固。果然,温故而知新,可以为师也,这都是古人留下的大智慧啊。