-
strings 字符串操作
package main
/* 练习 字符串的操作 */
import (
. "fmt"
_ "strconv"
"strings"
)
// 字符串操作
/* strings */
// 包含
// func Contains(s, substr string) bool
func contains(){
str := "我是yxl, 嘿嘿"
Printf("%v \n", strings.Contains(str, "yxl"))
}
// 连接
// func Join(a []string, sep string) string
func join(){
str_slice := []string{"yxl", "love", "gch"}
Printf("%s", strings.Join(str_slice, "❤"))
}
// 字串索引
// func Index(s, sep string) int
func index(){
str := "我是yxl, 嘿嘿"
Printf("%d", strings.Index(str, "yxl")) // 这里是字节的索引,所以汉字占3 个字节 此处结果为6
}
// 字符串重复 多次
// func Repeat(s string, count int) string
func repeat(){
str := "我是yxl, 嘿嘿"
Printf("%s", strings.Repeat(str, 3))
}
// 字串替换
// func Replace(s, old, new string, n int) string
func replace(){
str := "我是yxl, 嘿嘿"
new_str := strings.Replace(str, "yxl", "gch", 1) // 最后的参数, >= 0 尽可能替换, 小于0 全部替换
Printf(new_str)
}
// 分割为 切片
// func Split(s, sep string) []string
func split(){
str := "我爱|徐州|更爱你"
str_slice := strings.Split(str, "|")
Printf("%v", str_slice)
}
// 去掉 两边的字符, 和 py 类似, 属于递归清除每个字符,而不是当做整个子字符 清除, "abc" 清除 两边的 a、b、c 而不是 abc 整体
// func Trim(s string, cutset string) string
func delete_char(){
str := "* 前面有空格,后面也有 *"
Println("原始字串:", str)
str = strings.Trim(str, " *")
Printf("清除两边字符后为:%v", str)
}
// 按照空白符切割,返回切片
// func Fields(s string) []string
func split_by_space(){
str := " 前空格, 后空格 "
Printf("原始字符:%v", str)
new_str_slice := strings.Fields(str)
Printf("操作之后的字符串:%v, 操作之后的切片: %v", str, new_str_slice)
// > 原始字符: 前空格, 后空格 操作之后的字符串: 前空格, 后空格 , 操作之后的切片: [前空格, 后空格]
}
func main(){
// contains()
// join()
// index()
// repeat()
// replace()
// split()
// delete_char()
split_by_space()
}
-
strconv 字符串转换
实现基本数据类型转换为 字符串的操作
Append 系列 酱整数转化为字符串后,添加到现有的字节数组中
// func AppendInt(dst []byte, i int64, base int) []byte base 是进制如 10 表示十进制
// func AppendQuote(dst []byte, s string) []byte 会添加字符的双引号
// func AppendQuoteRune(dst []byte, r rune) []byte 添加单引号的字符, 双引号会报错
func append(){
str := make([]byte, 0, 100)
str = strconv.AppendInt(str, 4567, 10)
str = strconv.AppendBool(str, false)
str = strconv.AppendQuote(str, "abcdefg")
str = strconv.AppendQuoteRune(str, '单')
Println(string(str))
// > 4567false"abcdefg"'单'
}
Format 系列函数把其他类型的转换为字符串
// func FormatFloat(f float64, fmt byte, prec, bitSize int) string 这个看不懂
// func Itoa(i int) string 等价于 FormatInt(int64(i), 10)
func format(){
a := strconv.FormatBool(false)
b := strconv.FormatFloat(123.23, 'g', 12, 64)
c := strconv.FormatInt(1234, 10)
d := strconv.FormatUint(12345, 10)
e := strconv.Itoa(1023)
Println(a, b, c, d, e)
//> false 123.23 1234 12345 1023
}
Parse 系列函数把字符串转换为其他类型
a, _:= strconv.ParseBool("false")
b, _:= strconv.ParseFloat("123.23", 64)
c,_ := strconv.ParseInt("1234", 10, 64)
d, _ := strconv.ParseUint("12345", 10, 64)
e, _ := strconv.Atoi("1023")
Println(a, b, c, d, e)
> false 123.23 1234 12345 1023