strings包提供了Go语言中操作字符串的方法,提供了一系列函数用于处理字符串,包括比较、查找、替换、转换等功能。
以下是一些常用的示例代码:
1、比较两个字符串:strings.Compare()
package main
import (
"fmt"
"strings"
)
func main() {
s1 := "天生我材必有用"
s2 := "腹有诗书气自华,读书万卷始通神"
fmt.Println(strings.Compare(s1, s2))
//-1
}
返回值小于0表示s1小于s2,等于0表示s1等于s2,大于0表示s1大于s2。
2、查找子串:strings.Contains()
package main
import (
"fmt"
"strings"
)
func main() {
s1 := "书山有路勤为径,学海无涯苦作舟"
s2 := "学海无涯苦作舟"
fmt.Println(strings.Contains(s1, s2))
//true
}
返回bool值,如果存在子串则返回true,否则返回false。
3、字符串替换:strings.Replace()、strings.ReplaceAll
package main
import (
"fmt"
"strings"
)
func main() {
s1 := "君子喻于义,小人喻于利,小人喻于利"
s2 := "喻"
s3 := "喻1"
fmt.Println(strings.Replace(s1, s2, s3, 2))
//君子喻1于义,小人喻1于利,小人喻于利
}
第四个参数控制替换的次数,2表示替换两处,-1表示替换所有。
package main
import (
"fmt"
"strings"
)
func main() {
str := "世上无难事,只怕有心人呵呵呵"
str = strings.ReplaceAll(str, "呵", "哈")
fmt.Println(str)
//世上无难事,只怕有心人哈哈哈
}
将字符串"世上无难事,只怕有心人呵呵呵"中的“呵”替换为“哈”,最终打印出结果“世上无难事,只怕有心人哈哈哈”,strings.ReplaceAll是替换所有。
4、转换函数:ToUpper()、ToLower()、Title()
package main
import (
"fmt"
"strings"
)
func main() {
str := "hello world"
//转换为大写
str = strings.ToUpper(str)
fmt.Println(str)
//HELLO WORLD
//strings.ToLower():转换为小写
//Title()函数将字符串的每个单词的首字母都转换成大写
fmt.Println(strings.Title("hello world"))
//Hello World
}
5、拆分函数:Split()、Fields()
package main
import (
"fmt"
"strings"
)
func main() {
str := "hello,world"
fmt.Println(strings.Split(str, ","))
//[hello world]
str1 := "hello,world"
fmt.Println(strings.Fields(str1))
//[hello,world]
}
将字符串“hello,world”拆分为“hello”和“world”两个子字符串,结果输出为一个字符串数组。
Split()函数与Fields()函数之间的主要区别是,Split()函数需要指定拆分字符,而Fields()函数不需要指定拆分字符,它会默认按照空格,换行和Tab符号来进行拆分。