三、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))
}

二、字符串格式化输出

2.1 缺省格式和类型

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

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

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

2.3 字符(有引号,Unicode)

value:65 (Unicode 是 A )

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

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)

}

三、字符串拼接

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)

}

四、字符串的比较

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)
}

五、字符串操作常用方法

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

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])
}

你可能感兴趣的:(golang,java,开发语言)