golang基础小记(2)——字符串常用操作

字符串常用操作

代码示例:

package main

import (
	"fmt"
	"strings"
)

// 转义符
// \r: 回车符,返回行首,后续字符串会从行首覆盖该行字符串
// \n: 换行符
// \t: 制表符

func main() {
	// 一对双引号内部的双引号需要转义才能使用;路径中的反斜杠需要转义才能正确输出
	fmt.Println("str := \"c:\\Code\\lesson1\\go.exe\"") // str := "c:\Code\lesson1\go.exe"
	
	// 多行字符串,反引号间换行将被作为字符串中的换行,但是所有的转义字符均无效,文本将会原样输出。
	s1 := `这是第一行\n
天苍苍
	野茫茫
		风吹草低现牛羊
	`
	fmt.Println(s1)

	// 字符串相关操作
	s2 := "abc"
	s3 := "def"
	// len(str): 求字符长度
	fmt.Println(len(s2)) // 3
	
	// +: 字符串拼接
	s4 := s2 + s3
	fmt.Println(s4) // abcdef
	
	// fmt.Sprintf(), 字符串拼接,返回拼接后的字符串
	s5 := fmt.Sprintf("%s %s", s2, s3) // abc def
	fmt.Println(s5)
	
	// 分割, strings.Split(str, sep string), 返回 string 类型的切片
	s6 := "a,b,c,d"
	fmt.Println(strings.Split(s6, ",")) // [a b c b]
	
	// 判断是否包含子串, strings.Contains(str, subStr string), 返回值是 bool 类型
	fmt.Println(strings.Contains(s6, "a")) //true
	
	// 判断子串是否是前缀
	fmt.Println(strings.HasPrefix(s6, ",")) // false
	
	// 判断子串是否是后缀
	fmt.Println(strings.HasSuffix(s6, "d")) // true
	s7 := "abab"
	
	// 子串第一次出现的位置, 返回值是 int 类型
	fmt.Println(strings.Index(s7, "a")) // 0
	
	// 子串最后一次出现的位置, 返回值是 int 类型
	fmt.Println(strings.LastIndex(s7, "a")) // 2
	
	// strings.Join(elems []string, sep string), 将切片内元素用sep字符串拼接 
	slice := []string{"aaa", "bbb", "ccc"}
	fmt.Println(strings.Join(slice, "+")) // aaa+bbb+ccc
}

s1的输出(注意行数和缩进的变化):

这是第一行\n
天苍苍
	野茫茫
		风吹草低现牛羊
	这是最后一行

其它输出都在注释中

猜你喜欢

转载自blog.csdn.net/m0_37710023/article/details/106505911
今日推荐