package main
import (
"fmt"
"strconv"
"strings"
)
// 统计长度:len(str) 内建函数不要引入包包,一个汉字三个字节
// 遍历含有中文的字符串,需要用切片 r := []rune(str)
// 字符串转整数 strconv.Atoi("123")
// 整数转字符串 strconv.Itoa(12345)
func main() {
//统计长度:len(str) 内建函数不要引入包包,一个汉字三个字节
str := "hello北"
fmt.Println("str len = ", len(str))
//遍历含有中文的字符串,需要用切片 r := []rune(str)
str1 := "hello北京"
str2 := []rune(str1)
for i := 0; i < len(str2); i++ {
fmt.Printf("字符=%c\n", str2[i])
}
//字符串转整数 strconv.Atoi("123")
n, err := strconv.Atoi("123")
if err != nil {
fmt.Println("转换错误:", err)
} else {
fmt.Println("转换结果:", n)
}
//整数转字符串 strconv.Itoa(12345)
str3 := strconv.Itoa(12345)
fmt.Printf("str3 = %v,str3 = %T \n", str3, str3)
// 字符串 转 []byte
var bytes = []byte("hello go")
fmt.Printf("byte %v\n", bytes)
// []byte 转字符串: str = string([]byte{97,98,99})
str4 := string([]byte{97, 98, 99})
fmt.Printf("str4 %v\n", str4)
// 10进制,转2、8、16进制 strconv.FormatInt(123,2) 返回对应的字符串
str = strconv.FormatInt(123, 2)
fmt.Printf("str 二进制 %v\n", str)
str = strconv.FormatInt(123, 16)
fmt.Printf("str 16进制 %v\n", str)
// 查找子串是否在指定的字符串中:strings.Contains("seafoo","foo") //true
is_check := strings.Contains("seafoo", "foo")
fmt.Printf("is_check is %v \n", is_check)
// 统计一个字符中,有几个指定的子串 strings.Count("apple","p")
num := strings.Count("apple", "p")
fmt.Printf("有 %v个\n", num)
fmt.Println(strings.Count("cheese", "e")) // 3
fmt.Println(strings.Count("five", "")) // before & after each rune // 5
// 不区分大小写的字符串比较(== 是区分大小写的):fmt.Println(strings.EqualFold("abc","ABC"))
b := strings.EqualFold("abc", "ABC") // strings.EqualFold 不区分大小写
fmt.Println("strings.EqualFold 判断", b)
fmt.Println("==判断", "abc" == "Abc") // == 区分大小写
// 返回子串在一个字符串中第一次出现的index值,如果没有则返回-1
// 也可用于判断是否存在 strings.Index("apple","p")
index := strings.Index("this is an apple", "p")
fmt.Println("第一次出现的index值是 ", index)
// 返回子串在字符串中出现的最后一次的位置,如果没有则返回-1 , strings.LastIndex("this is an apple", "p")
index = strings.LastIndex("this is an apple", "p")
fmt.Println("最后一次出现index值是 ", index)
// 将指定的子串替换成另一个子串 strings.Replace("go golang", "go", "go语言", n)
// 在字符串 go golang 中 把 go 替换成 go语言 n标识希望替换几个,如果-1则全部替换
str = strings.Replace("go go hello", "go", "hi", -1)
fmt.Println("替换后 ", str)
// 按照指定的某个字符,为分割标识,将一个字符串拆分成字符串数组 strings.Split("Tom go to school"," ")
strArr := strings.Split("Tom go to school", " ")
fmt.Printf("strArr %v\n", strArr)
// 将字符串进行大小写转换 strings.ToLower(str) 是转小写 strings.ToUpper(str) 是转大写
str = "Tom go to school"
str = strings.ToLower(str)
fmt.Printf("str ToLower is: %v\n", str)
str = strings.ToUpper(str)
fmt.Printf("str ToUpper is: %v\n", str)
// 将字符串左右两边的空格去掉strings.TrimSpace(" aaa bbb ")
str = " Tom go to school "
str = strings.TrimSpace(str)
fmt.Printf("str TrimSpace is=|%v|\n", str)
// 将字符串左右两边指定的字符去掉 strings.Trim("**aa bb ++", " **++") 去掉两边的 空格、**、++
str = "** ++Tom **go to ++school **"
str = strings.Trim(str, " **++")
fmt.Printf("str Trim is=|%v|\n", str)
// 将字符串左边指定的字符串去掉strings.TrimLeft("**aa bb ++", " **++") 去掉两边的 空格、**、++
strLeft := "** ++Tom **go to ++school **"
strLeft = strings.TrimLeft(strLeft, " **++")
fmt.Printf("str TrimLeft is=|%v|\n", strLeft)
// 将字符串左边指定的字符串去掉strings.TrimRight("**aa bb ++", " **++") 去掉两边的 空格、**、++
strRight := "** ++Tom **go to ++school **"
strRight = strings.TrimRight(strRight, " **++")
fmt.Printf("str TrimRight is=|%v|\n", strRight)
// 判断字符串是否以指定的字符串开头 strings.HasPrefix("ftp://192.168.1.1","ftp") 返回true
str = "ftp://192.168.1.1"
fmt.Println("开头是否含有", strings.HasPrefix(str, "ftp"))
// 判断字符串是否以指定的字符串结尾 strings.HasSuffix("abc123.jpg","abc") 返回false
str = "abc123.jpg"
fmt.Println("结尾是否含有", strings.HasSuffix(str, "jpg"))
}
Go基础-字符串函数
转载
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
字符串【Go基础】
Go中的string,简单总结,后续会补充
golang 字符串 迭代 类型转换 其他 -
【Go 基础篇】Go 语言字符串函数详解:处理字符串进阶
通过本篇博客,我们已经深入了解了Go语言中更多的字符串函数,从字符串的搜索、匹配、修剪、替换、拆分、连接够写出更加强大、优雅的代码。
golang java javascript 字符串 Go -
Go 基础丨字符串 string
本文简要介绍了 Go 语言字符串的使用方式。
golang 服务器 linux 数组 ico -
[go基础] go基础之字符串中查找汉字数量
前言:最近找到工作了,要转golang了。跨度比较大,最近在学习go基础,
go 编程语言 字符串 ico golang -
go语言 字符串处理函数 go字符类型
Go语言的字符有两种:uint8类型,或者叫 byte 型,字符串中的每个元素代表了ASCII码的一个字符rune类型,代表一个 UTF-8字符。
go语言 字符串处理函数 字符串 Go 数组类型