golang對字串的操作

2021-07-27 23:07:10 字數 2917 閱讀 1649

字串操作在程式設計中佔了很大的比重。

package main

import (

"bytes"

"fmt"

"strconv"

"strings"

"unicode"

)/**

簡單實用string操作符

func contains(s, substr string) bool

func join(a string, sep string) string

func index(s, sep string) int

func replace(s, old, new string, n int) string

func repeat(s string, count int) string

func split(s, sep string) string

func trim(s string, cutset string) string

func fields(s string) string

func compare(a, bstring)int

//查詢

// 判斷給定字串s中是否包含子串substr, 找到返回true, 找不到返回false

funccontains(s, substrstring)bool

// 在字串s中查詢sep所在的位置, 返回位置值, 找不到返回-1

funcindex(s, sepstring)int

// 統計給定子串sep的出現次數, sep為空時, 返回1 + 字串的長度

funccount(s, sepstring)int

//重複

// 重複s字串count次, 最後返回新生成的重複的字串

func repeat(sstring,countint)string

//替換

// 在s字串中, 把old字串替換為new字串,n表示替換的次數,小於0表示全部替換

funcreplace(s, old,newstring, nint)string

//刪除

// 刪除在s字串的頭部和尾部中由cutset指定的字元, 並返回刪除後的字串

func trim(sstring, cutsetstring)string

//大小寫轉換

// 給定字串轉換為英文標題的首字母大寫的格式(不能正確處理unicode標點)

functitle(sstring)string

// 所有字母轉換為小寫

functolower(sstring)string

// 所有字母轉換為大寫

functoupper(sstring)string

字串字首字尾

字首和字尾的判斷均為大小寫敏感

// 判斷字串是否包含字首prefix

funchasprefix(s, prefixstring)bool

// 判斷字串是否包含字尾suffix,

funchassuffix(s, suffixstring)bool

字串分割

字串分割

函式介面

// 把字串按照sep進行分割, 返回slice(類似於python中的split)

funcsplit(s, sepstring) string

// 去除字串s中的空格符, 並按照空格(可以是乙個或者多個空格)分割字串, 返回slice

funcfields(sstring) string

// 當字串中字元c滿足函式f(c)時, 就進行字串s的分割

funcfieldsfunc(sstring, ffunc(rune)bool) string

字串拼接

三種拼接方案:

1 直接用 += 操作符, 直接將多個字串拼接.

最直觀的方法, 不過當資料量非常大時用這種拼接訪求是非常低效的.

2 用字串切片(string)裝載所有要拼接的字串,

最後使用strings.join() 函式一次性將所有字串拼接起來。在資料量非常大時,這種方法的效率也還可以的。

3 利用buffer( buffer是乙個實現了讀寫方法的可變大小的位元組緩衝 ),將所有的字串都寫入到乙個buffer變數中,最後再統一輸出.

字元轉換

字串轉換

字串轉化的函式在 strconv 中

format* 函式將給定的型別變數轉換為string返回

parse* 函式將字串轉換為其他型別

**/func main()

fmt.println(strings.fieldsfunc(str1, afunc))

//拼接

str2 = " gogogo!"

fmt.println(str1 + str2)

var strarr string

fmt.println(strings.join(strarr, ""))

var buffer bytes.buffer

buffer.writestring(str1)

buffer.writestring(str2)

fmt.println(buffer.string())

//字串轉換

str3 := make(byte, 0, 100)

fmt.println(string(str3))

//格式化處理

fmt.printf("%t,%v\n", strconv.formatbool(true), strconv.formatbool(true))

fmt.printf("%t,%v\n", strconv.formatint(-44, 10))

fmt.printf("%t,%v\n", strconv.itoa(1234), strconv.itoa(1234))

}

golang 字串操作例項

package main import s strings import fmt var p fmt.println func main 字串陣列 連線 a b p repeat s.repeat a 5 重複乙個字串 aaaaa p replace s.replace foo o 0 1 字串替換...

golang之字串操作

1.字串在另乙個字串第一次出現的位置 str hello world fmt.println strings.index str,world 62.字串在另乙個字串最後一次出現的位置 fmt.println strings.lastindex str,l 93.切割字串 fmt.println st...

Golang 字串型別和字串操作

package main import fmt func main 標準輸出 bo y 我來自 t中國package main import fmt func main 標準輸出 我叫boy false true true true false false truepackage main impo...