• 三、GoLang字符串的基本操作


    一、转义符是什么?

    转义字符意义
    \n换行,将当前位置移动到下一行开头
    \r回车,将当前位置移到本行开头
    \t相当于一个Tab键
    \\代表一个反斜线“\”
    \"代表一个双引号字符

    代码实战

    package main
    
    import "fmt"
    
    /*
    *
    
    	字符串基本用法
    */
    func main() {
    
    	//转义符
    	// 我在学习"go"语言的字符串基本用法\,字符串的'基本用法'
    	// 假如现在在程序里输出这么一段话 我们需要对 引号来进行转义 因为他和我们定义字符串冲突了
    	// 转义可以使用 \ 或者使用 ``
    	var learn string
    	learn = "我在学习\"go\"语言的字符串基本用法\\,字符串的'基本用法'"
    	learn1 := `我在学习"go"语言的字符串基本用法`
    	fmt.Println(learn)
    	fmt.Println(learn1)
    
    	// 1.\n:换行,将当前位置移到下一行开头
    	var string1 string
    	string1 = "我在学习go语言,\n学习到换行符了"
    	fmt.Println(string1)
    
    	// 2.\r:回车,将当前位置移到本行开头
    	var string2 string
    	string2 = "我在学习go语言,\r学习到回车符了"
    	fmt.Println(string2)
    
    	// 3.\t:相当于一个 Tab键
    	var string3 string
    	string3 = "\t我在学习go语言,到tab键了"
    	fmt.Println(string3)
    
    	//计算字符串的长度
    	var desc string
    	desc = "我在学习字符串的基本用法"
    	descs := []rune(desc)
    	fmt.Println(len(descs))
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43

    二、字符串格式化输出

    2.1 缺省格式和类型

    格式化后的效果动词描述
    [0 1]%v缺省格式
    []int64(0,1)%#vgo语法打印
    []int64%T类型打印

    2.2 整型(缩进,进制类型,正负符号)

    格式化后的效果动词描述
    15%d十进制
    +15%+d必须显示正负符号
    _15%4dPad空格(宽度为4,右对齐)
    15_%-4dPad空格(宽度为4,左对齐)
    1111%b二进制
    17%o八进制
    f%x16进制,小写

    2.3 字符(有引号,Unicode)

    value:65 (Unicode 是 A )

    格式化后的效果动词描述
    A%c字符
    ‘A’%q有引号的字符
    U+0041%UUnicode
    U+0041 ‘A’%#UUnicode有引号

    2.4 浮点(缩进、精度、科学计数)

    value:123.456

    格式化后的效果动词描述
    1.234560e+02%e科学计数
    123.456000%f十进制小数

    2.5 字符串

    value:“cookie”

    格式化后的效果动词描述
    cookie%s字符串原样输出
    _cookie%6s宽度为6,邮对齐

    部分演示代码:

    package main
    
    import "fmt"
    
    func main() {
    	//=============================================== 二、格式化输出相关的参数===========================
    	username := "张三"
    	age := 20
    	address := "北京"
    	var ages []int = []int{1, 2, 3}
    
    	outContent := fmt.Sprintf("用户名%s,年龄:%d,地址:%s 数组的值:%v", username, age, address, ages)
    
    	fmt.Println(outContent)
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    三、字符串拼接

    package main
    
    import (
    	"fmt"
    	"strconv"
    	"strings"
    )
    
    func main() {
    
    	//字符串的拼接
    	name := "张三"
    	age := 18
    	sex := "男"
    	address := "北京市海淀区上地大厦"
    
    	//第一种拼接方式:字符串性能最差的
    	outContent := fmt.Sprintf("姓名是:%s,性别是:%s,年龄是:%d,工作地址在:%s", name, sex, age, address)
    
    	//第二种拼接方式:性能良好的
    	outContent1 := "姓名是:" + name + ",性别是:" + sex + ",年龄是:" + strconv.Itoa(age) + ",工作地址在:" + address
    
    	//第三种拼接方式:性能最好
    	var builder strings.Builder
    	builder.WriteString("姓名是:")
    	builder.WriteString(name)
    	builder.WriteString(",性别是:")
    	builder.WriteString(sex)
    	builder.WriteString(",年龄是:")
    	builder.WriteString(strconv.Itoa(age))
    	builder.WriteString(",工作地址是:")
    	builder.WriteString(address)
    	//生成字符串内容
    	outContent2 := builder.String()
    
    	//统计 builder的长度
    	fmt.Println("字符串的长度", builder.Len())
    	
    	
    	//重置 builder的内容?
    	builder.Reset()
    
    	outContent3 := builder.String()
    
    	//打印内容
    	fmt.Println(outContent)
    	fmt.Println(outContent1)
    	fmt.Println(outContent2)
    	fmt.Println("这是什么内容:" + outContent3)
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51

    四、字符串的比较

    package main
    
    import (
    	"fmt"
    	"strings"
    )
    func main() {
    	//=============================================== 二、字符串的比较===========================
    	a := "hello"
    	b := "hello"
    
    	c := "bello"
    	fmt.Println(a == b)
    	fmt.Println(a != b)
    	//大小比较 比较 ASCII码
    
    	fmt.Println(a > c)
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    五、字符串操作常用方法

    字符串常用方法可以点进到源码进行查看

    package main
    
    import (
    	"fmt"
    	"strings"
    )
    
    
    func main() {
    	//=============================================== 三、字符串的常用方法===========================
    	content := "我在学习go语言,正在学习的是字符串的常用方法"
    	//查询字符串是否包含某个值
    	fmt.Println(strings.Contains(content, "go"))
    	//计算字符串的长度
    	var desc string
    	desc = "我在我"
    	descs := []rune(desc)
    	fmt.Println(len(descs))
    
    	//出现的次数
    	fmt.Println(strings.Count(content, "go"))
    
    	//分割字符串
    	var contents = strings.Split(content, ",")
    	fmt.Println(contents[0])
    	fmt.Println(contents[1])
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
  • 相关阅读:
    导入导出Excel
    HTML5期末考核大作业,网站——旅游景点。 学生旅行 游玩 主题住宿网页
    STM32F103C8T6在Arduino框架下驱动ssd1306 0.96“ IIC OLED显示
    对象json文件转换
    JSD-2204-酷莎商城-ElementUI-Day07
    大促活动如何抵御大流量 DDoS 攻击?
    ElasticSearch 入门
    Vite和Vue3:Vite是一种新的开发服务器和构建工具,它利用了现代浏览器支持的原生ES模块导入,为开发者提供了极速的冷启动和即时热更新
    艾美捷C1q天然蛋白的应用和化学性质说明
    向量空间概述
  • 原文地址:https://blog.csdn.net/qq_44605317/article/details/132753615