Golang 字符串操作--使用strings、strconv包
strings包
package main import ( "fmt" "strings" ) func main() { //func Count(s, substr string) int //判断s中出现过多少次substr。 //如果substr为空字符串,则返回s的长度,这里的是指unicode字符的数量 fmt.Println(strings.Count("hello world", "l")) //3 fmt.Println(strings.Count("你好hello", "")) //8 //判断s是否包含子串substr //func Contains(s, substr string) bool fmt.Println(strings.Contains("hello world", "he")) //true //判断s是否以prefix开头 //func HasPrefix(s, prefix string) bool fmt.Println(strings.HasPrefix("hello", "h")) //true //找子串的位置 //func Index(s, substr string) int fmt.Println(strings.Index("hello", "")) //0 fmt.Println(strings.Index("hello", "o")) //4 fmt.Println(strings.LastIndex("hello", "")) //5 fmt.Println(strings.LastIndex("hello", "e")) //1 //如果子串是空字符串,Index返回0,LastIndex则返回字符串长度len(s) //如果包含子串,则返回子串的index。如果不包含子串,则返回-1 //删除字符串两端的指定字符串 //func Trim(s string, cutset string) string fmt.Println(strings.Trim("##demo#$#", "#")) //demo#$ fmt.Println(strings.TrimLeft("##test##", "#")) //test## fmt.Println(strings.TrimRight("##test##", "#")) //##test //删除字符串两端的空白字符(\n,\t,空格等) //func TrimSpace(s string) string s := " 123456 \n " fmt.Println(len(s), len(strings.TrimSpace(s))) //13 6 //字符串分割与拼接 ss := "1#2#3#4#5#6#7" //func Split(s, sep string) []string arr := strings.Split(ss, "#") //[1 2 3 4 5 6 7] //func Join(a []string, sep string) string sss := strings.Join(arr, "-") fmt.Println(arr, sss) //[1 2 3 4 5 6 7] 1-2-3-4-5-6-7 //字符串比较 //func Compare(a, b string) int //0=>a==b -1=> a<b 1=>a>b if strings.Compare("abc", "cde") > 0 { fmt.Println("abc大于cde") } else { fmt.Println("abc小于或等于cde") } //可以直接使用> == <来进行判断 //大小写转换 //func ToLower(s string) string //func ToUpper(s string) string fmt.Println(strings.ToUpper("123abcdefg"))//123ABCDEFG fmt.Println(strings.ToLower("123ABCDEFG"))//123abcdefg }
strconv包
package main import ( "fmt" "strconv" ) func main() { //将一个内容是整数的字符串转换为整型 //func Atoi(s string) (int, error) if i, err := strconv.Atoi("123"); err != nil { panic(err) } else { fmt.Println(i) } //整型转换为字符串型 //func Itoa(i int) string s := strconv.Itoa(99) fmt.Println(s) //将bool值转换为字符串类型 //func FormatBool(b bool) string flag := strconv.FormatBool(true) fmt.Println(flag, len(flag)) //true 4 //进制间转换 //func FormatInt(i int64, base int) string fmt.Println(strconv.FormatInt(100, 4)) //1210 十进制转4进制 fmt.Println(strconv.FormatInt(0xA, 2)) //1010 十六进制转2进制 //将字符串s按照base进制进行解析,注意这里不是数制转换 //func ParseInt(s string, base int, bitSize int) (i int64, err error) fmt.Println(strconv.ParseInt("1010", 2, 64)) //10 <nil> fmt.Println(strconv.ParseInt("A", 16, 64)) //10 <nil> //浮点数格式化 //第二个参数f表示正常输出,e/E表示科学计数法,g/G表示保留结果的总位数(整数部分位数+小数部分位数) //第三个参数表示保留小数点的位数 //第四个参数表示使用32位还是64位浮点数来保存结果 //func FormatFloat(f float64, fmt byte, prec, bitSize int) string fmt.Println(strconv.FormatFloat(123.456789, 'f', 4, 64)) //123.4568 fmt.Println(strconv.FormatFloat(123.456789, 'E', 4, 64)) //1.2346E+02 fmt.Println(strconv.FormatFloat(123.456789, 'e', 4, 64)) //1.2346e+02 fmt.Println(strconv.FormatFloat(123.456789, 'g', 4, 64)) //123.5 //将字符串用双引号括起来,不会将转义字符转义,转义字符原样输出 //func Quote(s string) string fmt.Println(strconv.Quote("abc")) //"abc" }
如需转载,请注明文章出处,谢谢!!!