Golang中对字符串string的相关操作

几乎任何程序都离不开文本(字符串)。文本操作是最常用的一个内容。 golang中拥有string的内置类型,可以使用与普通slice类型相似的性质。

1.简介

strings包提供了很多操作字符串的简单函数,通常一般的字符串操作都可以在这个包中找到。

strconv 包提供了基本数据类型和字符串之间的转换。在Go 中,没有隐式的类型转换,一般的类型可以使用类型名的方式进行转换,例如:int64(i) 【比如i为int类型】。但是,string类型和其他类型(int/bool/float)等的转换就没有这么简单了。

复杂的文本处理会用到正则表达式,regexp包提供了正则表达式的功能。

2.基本操作

因为Go中的string和其他的slice类型相似,数组的相关操作都可以应用到string上,例如:

len(str) //求str 的长度

str[:4] //类似于Java的subString(0,4),求字符串子串

3. strings 的相关函数

包含关系

判断字符串中是否包含某些字符或字符串

// 子串substr在s中,返回true
func Contains(s, substr string) bool
// chars中任何一个Unicode代码点在s中,返回true
func ContainsAny(s, chars string) bool
// Unicode代码点r在s中,返回true
func ContainsRune(s string, r rune) bool

子串出现次数

查找字符串中某个字符串出现的次数:
func Count(s, sep string) int

**字符串分割

将字符串分割为string[]
使用Fields 和 FieldsFunc方式
函数定义如下:
func Fields(s string) []string
func FieldsFunc(s string, f func(rune) bool) []string

Fields 使用空格作为分割符对字符串s进行分割,返回子字符串数组(slice),若字符串s只包含空格,则返回长度为0的空字符串数组。
FieldsFunc 使用一个函数作为分割的依据,通过判定函数选定作为分割符号的字符。
例如:将字符串中的所有数字作为分割符就可以定义一个函数用于判断字符是否为数组类型,将该函数作为字符串分割的依据。
注意:这里的字符指的是rune类型。关于rune可以参考《【golang】浅析rune数据类型》
在golang中,一个byte等同于int8 ,常用于处理ascii字符, rune等同于 int32,常用于处理unicode和utf-8字符。

你可能感兴趣的:(Golang)