golang字符串处理
生活随笔
收集整理的這篇文章主要介紹了
golang字符串处理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
字符串處理
下面這些函數來自于string包
常用操作
Fields以連續的空白字符為分隔符
// Fields 以連續的空白字符為分隔符,將 s 切分成多個子串,結果中不包含空白字符本身 // 空白字符有:\t, \n, \v, \f, \r, ' ', U+0085 (NEL), U+00A0 (NBSP) // 如果 s 中只包含空白字符,則返回一個空列表 func Fields(s string) []string func main() {s := "Hello, 世界! Hello!"ss := strings.Fields(s)fmt.Printf("%q\n", ss) // ["Hello," "世界!" "Hello!"] }contains包含子串
func Contains(s, substr string) bool 功能: 字符串s中是否包含substr,返回bool值例子
func main() {fmt.Println(strings.Contains("abc", "a")) //truefmt.Println(strings.Contains("abc", "")) //truefmt.Println(strings.Contains("", "")) //true }join按指定方式拼接
func Join(a []string, seq string) string 功能: 字符串鏈接,把slice a通過sep鏈接起來例子
func main() {s := []string{"foo", "bar", "baz"}//foo, bar, bazfmt.Println(strings.Join(s, ", ")) }index找位置
還有個LastIndex表示最后出現的位置
func Index(s, sep string) int 功能: 在字符串s中查找sep所在的位置,返回位置值,找不到返回-1例子
func main() {//3fmt.Println(strings.Index("chiken", "ken")) }repeat重復多少次
func Repeat(s string, count int) string 功能: 重復s字符串count次,最后返回重復的字符串例子
func main() {//bananafmt.Println("ba" + strings.Repeat("na", 2)) }replace按指定替換
fiunc Replace(s, old, new string, n int) string 功能: 在s字符串中,把old字符串替換為new字符串,n表示替換的次數,小于0表示全部替換例子
func main() {//ab1 efg 1ccfmt.Println(strings.Replace("abc efg ccc", "c", "1", 2)) }split分割
func Split(s, sep string) []string 功能: 把s字符串按照sep分割,返回slice例子
func main() {//["a" "b" "c"]fmt.Printf("%q\n", strings.Split("a,b,c", ","))//["" " is c"]fmt.Printf("%q\n", strings.Split("a is c", "a")) }Trim頭尾去除指定的串
func Trim(s string, cutset string) string 功能: 在s字符串的頭部和尾部去除cutset指定的字符串例子
func main() {//["aaa"]fmt.Printf("[%q]", strings.Trim(" !!!aaa!!! ", " !")) }字符串轉換
Append
將整數等轉換為字符串后,添加到現有的字節數組中
func main() {//字節數組str := make([]byte, 0, 100)str = strconv.AppendBool(str, false)//以10進制的方式追加,參數10str = strconv.AppendInt(str, 111, 10)str = strconv.AppendQuote(str, "abcde")str = strconv.AppendQuoteRune(str, '單')//false111"abcde"'單'//轉為string打印fmt.Println(string(str)) }Format
Format系列函數把其他類型的轉換為字符串
例子
a := strconv.FormatBool(false) //10進制 b := strconv.FormatInt(1234, 10) c := strconv.FormatUint(123444, 10) //整形轉字符串 d := strconv.Itoa(1234)//false 1234 123444 1234 fmt.Println(a, b, c, d)parse
parse系列函數把字符串轉換為其他類型
//字符串轉其他類型 var flag bool var err error flag, err = strconv.ParseBool("true") if err == nil {//沒有錯誤fmt.Println("flag = ", flag) } else {fmt.Println("err = ", err) }Atoi
func main() {//_表示丟棄a, _ := strconv.Atoi("567")fmt.Println(a) }和切片轉換
長度是字節的長度
字符串底層是一個byte數組,所以可以和[]byte類型互相轉換
字符串是不可以修改的
var str = "hello你好" fmt.Printf("str[0]=%c, len(str)=%d\n", str[0], len(str))for index, val := range str {fmt.Println(index, val) } //str['0'] = '1' 錯誤不能修改 var byteSlice []byte byteSlice = []byte(str) byteSlice[0] = '0' str = string(byteSlice)fmt.Println(str)輸出
str[0]=h, len(str)=11 0 104 1 101 2 108 3 108 4 111 5 20320 8 22909 0ello你好字節長度和字符長度
rune是字符類型
var str = "hello你好" //字節數組 var rune []byte rune = []byte(str) //11, 11 fmt.Println(len(str), len(rune))var str = "hello你好" //rune是字符類型 var byteSlice []rune byteSlice = []rune(str) //11, 7 fmt.Println(len(str), len(byteSlice))string和int互相轉換
- string轉成int:
- string轉成int64:
- int轉成string:
- int64轉成string:
- string 轉 int32
- int到int64
string和float float32 float64
- float到string
- string到float64
- string到float32
string到time
day,_ := time.Parse("2006-01-02", "2017-11-14") month := time.Unix(day.Unix(), 0).Format("2006-01") //返回2017-11總結
以上是生活随笔為你收集整理的golang字符串处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: golang正则表达式
- 下一篇: golang中的recover