Go 的字串處理總結

2021-09-02 23:31:49 字數 3653 閱讀 3587

正好最近用到了一些字串,就總結了一下golang中的字串處理函式,主要是golang中的strings包:

count(s string, str string) int:計算字串str在s中的非重疊個數。如果str為空串則返回s中的字元(非位元組)個數+1。

index(s string, str string) int :返回子串str在字串s中第一次出現的位置。如果找不到則返回-1;如果str為空,則返回0。

lastindex(s string, str string) int: 返回子串str在字串s中最後一次出現的位置。如果找不到則返回-1;如果str為空則返回字串s的長度。

indexrune(s string, r rune) int :返回字元r在字串s中第一次出現的位置。如果找不到則返回-1。

indexany(s string, str string) int :返回字串str中的任何乙個字元在字串s中第一次出現的位置。如果找不到或str為空則返回-1。

lastindexany(s string, str string) int: 返回字串str中的任何乙個字元在字串s中最後一次出現的位置。如果找不到或str為空則返回-1。

contains(s string, str string) bool:判斷字串s中是否包含個子串str。包含或者str為空則返回true。

containsany(s string, str string) bool:判斷字串s中是否包含個子串str中的任何乙個字元。包含則返回true,如果str為空則返回false。

containsrune(s string, r rune) bool:判斷字串s中是否包含字元r。

splitn(s, str string, n int) string:以str為分隔符,將s切分成多個子串,結果中**不包含**str本身。如果str為空則將s切分成unicode字元列表。如果s中沒有str子串,則將整個s作為string的第乙個元素返回。引數n表示最多切分出幾個子串,超出的部分將不再切分,最後乙個n包含了所有剩下的不切分。如果n為0,則返回nil;如果n小於0,則不限制切分個數,全部切分。

splitaftern(s, str string, n int) string:以str為分隔符,將s切分成多個子串,結果中**包含**str本身。如果str為空,則將s切分成unicode字元列表。如果s 中沒有str子串,則將整個s作為 string 的第乙個元素返回。引數n表示最多切分出幾個子串,超出的部分將不再切分。如果n為0,則返回 nil;如果 n 小於 0,則不限制切分個數,全部切分。

split(s, str string) string:以str為分隔符,將s切分成多個子切片,結果中**不包含**str本身。如果str為空,則將s切分成unicode字元列表。如果s中沒有str子串,則將整個s作為string的第乙個元素返回。

splitafter(s, str string) string:以str為分隔符,將s切分成多個子切片,結果中**包含**str本身。如果 str 為空,則將 s 切分成unicode字元列表。如果s中沒有str子串,則將整個s作為string的第乙個元素返回。

fields(s string) string:以連續的空白字元為分隔符,將s切分成多個子串,結果中不包含空白字元本身。空白字元有:\t, \n, \v, \f, \r, 』 『, u+0085 (nel), u+00a0 (nbsp) 。如果 s 中只包含空白字元,則返回乙個空列表。

fieldsfunc(s string, f func(rune) bool) string:以乙個或多個滿足f(rune)的字元為分隔符,將s切分成多個子串,結果中不包含分隔符本身。如果s中沒有滿足f(rune)的字元,則返回乙個空列表。

join(s string, str string) string:將s中的子串連線成乙個單獨的字串,子串之間用str分隔。

hasprefix(s string, prefix string) bool:判斷字串s是否以prefix開頭。

hassuffix(s, suffix string) bool :判斷字串s是否以prefix結尾。

map(f func(rune) rune, s string) string:將s中滿足f(rune)的字元替換為f(rune)的返回值。如果f(rune)返回負數,則相應的字元將被刪除。

repeat(s string, n int) string:將n個字串s連線成乙個新的字串。

toupper(s string) string:將s中的所有字元修改為其大寫格式。對於非ascii字元,它的大寫格式需要查表轉換。

tolower(s string) string:將s中的所有字元修改為其小寫格式。對於非ascii字元,它的小寫格式需要查表轉換。

totitle(s string) string:將s中的所有字元修改為其title格式,大部分字元的title格式就是upper格式,只有少數字元的title格式是特殊字元。這裡的totitle主要給title函式呼叫。

trimleftfunc(s string, f func(rune) bool) string:刪除s頭部連續的滿足f(rune)的字元。

trimrightfunc(s string, f func(rune) bool) string:刪除s尾部連續的滿足f(rune)的字元。

trimfunc(s string, f func(rune) bool) string:刪除s首尾連續的滿足f(rune)的字元。

indexfunc(s string, f func(rune) bool) int:返回s中第乙個滿足f(rune) 的字元的位元組位置。如果沒有滿足 f(rune) 的字元,則返回 -1。

lastindexfunc(s string, f func(rune) bool) int:返回s中最後乙個滿足f(rune)的字元的位元組位置。如果沒有滿足 f(rune) 的字元,則返回 -1。

trim(s string, str string) string:刪除s首尾連續的包含在str中的字元。

trimleft(s string, str string) string:刪除s頭部連續的包含在str中的字串。

trimright(s string, str string) string:刪除s尾部連續的包含在str中的字串。

trimspace(s string) string:刪除s首尾連續的的空白字元。

trimprefix(s, prefix string) string:刪除s頭部的prefix字串。如果s不是以prefix開頭,則返回原始s。

trimsuffix(s, suffix string) string:刪除s尾部的suffix字串。如果s不是以suffix結尾,則返回原始s。(只去掉一次,注意和trimright區別)

replace(s, old, new string, n int) string:返回s的副本,並將副本中的old字串替換為new字串,替換次數為n次,如果n為-1,則全部替換;如果 old 為空,則在副本的每個字元之間都插入乙個new。

equalfold(s1, s2 string) bool:比較utf-8編碼在小寫的條件下是否相等,不區分大小寫,同時它還會對特殊字元進行轉換。比如將「ϕ」轉換為「φ」、將「dž」轉換為「dž」等,然後再進行比較。

「==」比較字串是否相等,區分大小寫,返回bool。

compare(s1 string, s2 string) int1:比較字串,區分大小寫,比」==」速度快。相等為0,不相等為-1。

Go字串常用處理

應用到strings包 author jadeshu description file main version 1.0.0 date 2019 11 7 1 01 package main import fmt strconv strings func main fmt.println strin...

總結 PHP字串處理

1.可以將字串看做陣列,但不是陣列,不能使用陣列處理函式來處理字串。但是可以如下使用 header content type text html charset utf 8 str abcde echo str 輸出b 注意 2.字元與字元編碼的轉換 chr 將字元編碼轉換成字元 ord 將字元轉換...

php字串處理總結

php字串處理是php基礎中重要的一部分,總結並整理了一下 1 最簡單的,字串輸出單引號和雙引號的區別 定義字串用單引號和雙引號都可以 1 str hello 2echo str is str 3echo 4 echo str is str 看到了吧,雙引號會輸出字串本身,單引號會輸出字串變數識別符...