go--strings和strconv对字符串的操作

Posted traditional

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go--strings和strconv对字符串的操作相关的知识,希望对你有一定的参考价值。

package main

import (
	"fmt"
	"strings"
	"strconv"
)

func main(){
	s := "my name is satori"

	// 1.判断字符串是否以xx字符开头,类似于Python中的startswith
	fmt.Println(strings.HasPrefix(s,"my"))  //true

	// 2.判断字符串是否以xx字符结尾,类似于Python中的endswith
	fmt.Println(strings.HasSuffix(s,"satori")) //true

	// 3.找出在字符串中xx字符首次出现的位置,如果没有,返回-1,类似于Python中的find
	fmt.Println(strings.Index(s,"s"))  //9

	// 4.找出在字符串中xx字符最后出现的位置,如果没有,返回-1,类似于Python中的rfind
	fmt.Println(strings.LastIndex(s,"s")) //11

	// 5.字符串替换,参数分别为字符串,被替换的字符串,用来替换的字符串,替换次数(不写,默认替换所有),类似于Python中的replace
	fmt.Println(strings.Replace(s,"s","S",2))  //my name iS Satori

	// 6.计算某个字符串出现的次数,类似于Python中的count
	fmt.Println(strings.Count(s,"s")) //2

	// 7.重复xx次str
	fmt.Println(strings.Repeat("s",5)) //sssss

	// 8.转为小写,类似于Python中的lower
	fmt.Println(strings.ToLower(s)) //my name is satori

	// 9.转为大写,类似于Python中的upper
	fmt.Println(strings.ToUpper(s)) //MY NAME IS SATORI

	// 10.去掉指定字符,类似于Python中的strip
	// TrimSpace,去掉空格
	fmt.Println(strings.TrimSpace("    my name is satori     "))//my name is satori
	//Trim,指定去掉的字符
	fmt.Println(strings.Trim("my name is satori","mi"))//y name is sator
	//TrimLeft,只去掉首部
	fmt.Println(strings.TrimLeft("my name is satori","mi"))//y name is satori
	//TrimRight,只去掉尾部
	fmt.Println(strings.TrimRight("my name is satori","mi"))//my name is sator

	// 11.返回用空格的所有子串组成的切片,如果之间有多个空格,会被当成一个空格
	fmt.Println(strings.Fields("    my name             is satori"))//[my name is satori]
	fmt.Printf("%T
",strings.Fields("    my name             is satori"))//[]string

	// 12.返回以xx字符分割的字符串,类似于Python中的split
	fmt.Println(strings.Split("my:name:is:satori",":"))//[my name is satori]

	// 13.用某元素将切片里面的所有元素连接起来,类似于Python中的join
	fmt.Println(strings.Join([]string{"my","name","is","satori"},"-"))//my-name-is-satori

	// 14.将一个整数转化成一个字符串,注意是strconv
	fmt.Println(strconv.Itoa(123))//123
	fmt.Printf("%T
",strconv.Itoa(123))//string

	// 15.将一个字符串转化成一个整形
	//注意:这个函数会有两个返回值
	if str,err:=strconv.Atoi("123"); err!=nil{
		fmt.Println("ERR=",err)
	}else{
		fmt.Println(str)//123
		fmt.Printf("%T",str)//int
	}

	if str,err:=strconv.Atoi("aaa"); err!=nil{
		fmt.Println("ERR=",err) //intERR= strconv.Atoi: parsing "aaa": invalid syntax
	}else{
		fmt.Println(str)
		fmt.Printf("%T",str)
	}

}

  

以上是关于go--strings和strconv对字符串的操作的主要内容,如果未能解决你的问题,请参考以下文章

strconv.Atoi() 给定字符串时抛出错误

16strconv

strconv包字符串和基本类型之前的转换--Go语言学习笔记

Go语言的字符串转换的处理一之strconv包

Go语言标准库之strconv

go语言标准库之strconv