Go语言编程之字符串操作 - Go语言中文社区

Go语言编程之字符串操作


1.字符串操作

strings包里面的函数列表
语法 含义/结果
strings.Contains(s, t) 如果t在s中则返回true
strings.Count(s,t)

t在s中出现了多少次

strings.Join(xs, t) 将xs中所有字符串按照t分隔符进行合并(t可能为"")
strings.Index(s, t) t在s中第一次出现的索引位置
strings.Repeat(s, i) 重复i次字符串s
strings.Replace(s,old,new,i) 返回一个新的字符串,对s中旧的非重叠字符串用新的字符串进行替换,执行i次替换操作,如果i=-1则全部替换
strings.Fields(s) 在字符串空白处进行分割,返回字符串切片
strings.Split(s, t) 返回一个新的字符串切片,在原s上所有出现t的位置进行切分
strings.Trim(s, t) 返回一个新的字符串,从s两端过滤掉t

 

package main

import (
	"fmt"
	"strings" //strings所有操作都是针对字符串的,因此不能使用字符
)

func main() {
	//hello中包含llo故返回true
	fmt.Println(strings.Contains("hello", "llo"))
	//hello中不包含oll,故返回false
	fmt.Println(strings.Contains("hello", "oll"))

	//统计字符串中元素出现的次数
	fmt.Println("统计hahaha中ha出现的次数: ", strings.Count("hahaha", "ha"))

	//以空格符连接字符数组{"hello","world","go"}
	//注意只能是切片,不能是数组
	var str []string = []string{"hello", "world", "go"}
	fmt.Println("通过join进行字符串合并:", strings.Join(str, " "))

	//查看o在hello中第一次出现的索引
	fmt.Println("o在hello中第一次出位置的索引为:", strings.Index("hello", "o"))

	//重复3次字符串ha
	fmt.Println("重复3次字符串ha:", strings.Repeat("ha", 3))

	//替换掉字符串hello world中的world为go
	fmt.Println("替换掉字符串hello world中的world为go:", strings.Replace("hello world", "world", "go", 1))

	//在字符串空白处进行分割
	fmt.Println("在字符串空白处进行分割:", strings.Fields("H E L  L    O"))

	//切分字符串
	fmt.Println("以#为分隔符切分字符串:", strings.Split("Hello#World#and#go", "#"))

	//过滤掉字符串两边的空格
	fmt.Println("过滤掉字符串两边的空格:", strings.Trim("   Hello go     ", " "))
}

输出:

2.字符串转换

【1】Append

将整数转换为字符串后添加到现有的字节数组中。

【2】Format

把其他类型的转换为字符串

【3】Parse

把字符串转化为其他类型

package main

import (
	"fmt"
	"strconv"
)

func main() {
	//转换为字符串后追加到字节数组
	slice := make([]byte, 0, 1024)
	slice = strconv.AppendBool(slice, true)
	//第二个数为要追加的数,第三个为指定十进制方式追加
	slice = strconv.AppendInt(slice, 1234, 10)
	//追加"abcd"到slice末尾
	slice = strconv.AppendQuote(slice, "abcd")

	fmt.Println("slice = ", string(slice)) //转化为string类型再打印

	//其他类型转换为字符串
	var str string
	//
	str = strconv.FormatBool(false)
	fmt.Println("str = ", str)

	/*
		strconv.FormatFloat(f, fmt, prec, bits)
		1)f表示浮点数
		2)fmt表示格式化类型,'e'表示以科学计数法e表示浮点数
						 'E'表示以科学记数法E表示浮点数
						 'f'表示以标准计数法表示浮点数
						 'g'表示以%e或者%f表示浮点数,任何一个都以紧凑的方式输出。
						 'G'表示以%E或者%f表示浮点数,任何一个都以紧凑的方式输出。
		当为'e','E','f'时,prec表示小数点后保留几位小数,为'g'或'G'时,prec=-1可以获得能用的最少数字个数。
		当然为'e','E','f'时也可以零prec = -1表示相同含义。
		3)bits通常为64,表示float64
	*/
	//'f'指打印格式,以小数方式,-1指小数点位数(紧凑模式),64表示以float64处理
	str = strconv.FormatFloat(3.14, 'f', -1, 64)
	fmt.Println("str = ", str)

	//整形转字符串
	str = strconv.Itoa(6666)
	fmt.Println("str = ", str)

	//字符串转其他类型
	flag, err := strconv.ParseBool("true")
	if err == nil {
		fmt.Println("flag = ", flag)
	} else {
		fmt.Println("err = ", err)
	}

	//把字符串转化为整形
	a, _ := strconv.Atoi("567")
	fmt.Println("a = ", a)
}

输出:

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/random_w/article/details/84971991
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-02-02 18:55:22
  • 阅读 ( 850 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢