- Created by 郭强, last modified by 黄骞 on Dec 15, 2021
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 51 Next »
gstr
提供了强大便捷的文本处理组件,组件内置了大量常用的字符串处理方法,比较于Golang
标准库更加全面丰富,可应对绝大部分业务场景。
使用方式:
import "github.com/gogf/gf/text/gstr"
接口文档:
https://godoc.org/github.com/gogf/gf/text/gstr
以下常用方法列表,文档更新可能滞后于代码新特性,更多的方法及示例请参考代码文档:https://pkg.go.dev/github.com/gogf/gf/v2/text/gstr
常用方法
Count
说明:
Count
计算substr
在s
中出现的次数。 如果在s
中没有找到substr
,则返回0
。格式:
Count(s, substr string) int
示例:
func ExampleCount() { var ( str = `goframe is very, very easy to use` substr1 = "goframe" substr2 = "very" result1 = gstr.Count(str, substr1) result2 = gstr.Count(str, substr2) ) fmt.Println(result1) fmt.Println(result2) // Output: // 1 // 2 }
CountI
说明:
Count
计算substr
在s
中出现的次数,不区分大小写。 如果在s
中没有找到substr
,则返回0
。格式:
CountI(s, substr string) int
示例:
func ExampleCountI() { var ( str = `goframe is very, very easy to use` substr1 = "GOFRAME" substr2 = "VERY" result1 = gstr.CountI(str, substr1) result2 = gstr.CountI(str, substr2) ) fmt.Println(result1) fmt.Println(result2) // Output: // 1 // 2 }
ToLower
说明:
ToLower
将s
中所有Unicode
字符都变为小写并返回其副本。格式:
ToLower(s string) string
示例:
func ExampleToLower() { var ( s = `GOFRAME` result = gstr.ToLower(s) ) fmt.Println(result) // Output: // goframe }
ToUpper
说明:
ToUpper
将s
中所有Unicode
字符都变为大写并返回其副本。格式:
ToUpper(s string) string
示例:
func ExampleToUpper() { var ( s = `goframe` result = gstr.ToUpper(s) ) fmt.Println(result) // Output: // GOFRAME }
UcFirst
说明:
UcFirst
将s
中首字符变为大写并返回其副本。格式:
UcFirst(s string) string
示例:
func ExampleUcFirst() { var ( s = `hello` result = gstr.UcFirst(s) ) fmt.Println(result) // Output: // Hello }
LcFirst
说明:
LcFirst
将s
中首字符变为小写并返回其副本。格式:
LcFirst(s string) string
示例:
func ExampleLcFirst() { var ( str = `Goframe` result = gstr.LcFirst(str) ) fmt.Println(result) // Output: // goframe }
UcWords
说明:
UcWords
将字符串str
中每个单词的第一个字符变为大写。格式:
UcWords(str string) string
示例:
func ExampleUcWords() { var ( str = `hello world` result = gstr.UcWords(str) ) fmt.Println(result) // Output: // Hello World }
IsLetterLower
说明:
IsLetterLower
验证给定的字符b
是否是小写字符。格式:
IsLetterLower(b byte) bool
示例:
func ExampleIsLetterLower() { fmt.Println(gstr.IsLetterLower('a')) fmt.Println(gstr.IsLetterLower('A')) // Output: // true // false }
IsLetterUpper
说明:
IsLetterUpper
验证字符b
是否是大写字符。格式:
IsLetterUpper(b byte) bool
示例:
func ExampleIsLetterUpper() { fmt.Println(gstr.IsLetterUpper('A')) fmt.Println(gstr.IsLetterUpper('a')) // Output: // true // false }
IsNumeric
说明:
IsNumeric
验证字符串s
是否为数字。格式:
IsNumeric(s string) bool
示例:
func ExampleIsNumeric() { fmt.Println(gstr.IsNumeric("88")) fmt.Println(gstr.IsNumeric("3.1415926")) fmt.Println(gstr.IsNumeric("abc")) // Output: // true // true // false }
Reverse
说明:
Reverse
返回str
的反转字符串。格式:
Reverse(str string) string
示例:
func ExampleReverse() { var ( str = `123456` result = gstr.Reverse(str) ) fmt.Println(result) // Output: // 654321 }
NumberFormat
说明:
NumberFormat
以千位分组来格式化数字。- 参数
decimal
设置小数点的个数。 - 参数
decPoint
设置小数点的分隔符。 参数
thousand
设置千位分隔符。
- 参数
格式:
NumberFormat(number float64, decimals int, decPoint, thousandsSep string) string
示例:
func ExampleNumberFormat() { var ( number float64 = 123456 decimals = 2 decPoint = "." thousandsSep = "," result = gstr.NumberFormat(number, decimals, decPoint, thousandsSep) ) fmt.Println(result) // Output: // 123,456.00 }
ChunkSplit
说明:
ChunkSplit
将字符串拆分为单位为chunkLen
长度更小的每一份,并用end
连接每一份拆分出的字符串。格式:
ChunkSplit(body string, chunkLen int, end string) string
示例:
func ExampleChunkSplit() { var ( body = `1234567890` chunkLen = 2 end = "#" result = gstr.ChunkSplit(body, chunkLen, end) ) fmt.Println(result) // Output: // 12#34#56#78#90# }
Compare
说明:
Compare
返回一个按字典顺序比较两个字符串的整数。 如果a == b
,结果为0
,如果a < b
,结果为-1
,如果a > b
,结果为+1
。格式:
Compare(a, b string) int
示例:
func ExampleCompare() { fmt.Println(gstr.Compare("c", "c")) fmt.Println(gstr.Compare("a", "b")) fmt.Println(gstr.Compare("c", "b")) // Output: // 0 // -1 // 1 }
Equal
说明:
Equal
返回a
和b
在不区分大小写的情况下是否相等。格式:
Equal(a, b string) bool
示例:
func ExampleEqual() { fmt.Println(gstr.Equal(`A`, `a`)) fmt.Println(gstr.Equal(`A`, `A`)) fmt.Println(gstr.Equal(`A`, `B`)) // Output: // true // true // false }
Count
说明:
格式:
示例:
AddSlashes
- 格式: AddSlashes
- 说明: 在英文的 单引号( ' ) , 双引号( " ), 反斜杠( \ ) 前面自动添加一个转义符号 反斜杠( \ )。
示例:
func ExampleAddSlashes() { var str string str = `'aa'"bb"cc\r\n\d\t` rsStr := gstr.AddSlashes(str) fmt.Println(rsStr) // Output: // \'aa\'\"bb\"cc\\r\\n\\d\\t }
CaseCamel
- 格式: CaseCamel
- 说明: 将字符串转换为大驼峰形式(首字母大写)。
示例: `goframe_is very nice.to-use` 字符串中的下划线,空格,点,中横杠都可以作为驼峰的分割点。
func ExampleCaseCamel() { var str string str = `goframe_is very nice.to-use` rsStr := gstr.CaseCamel(str) fmt.Println(rsStr) // Output: // GoframeIsVeryNiceToUse }
CaseCamelLower
- 格式: CaseCamelLower
- 说明: 将字符串转换为小驼峰形式(首字母小写)。
示例: `goframe_is very nice.to-use` 字符串中的下划线,空格,点,中横杠都可以作为驼峰的分割点。
func ExampleCaseCamelLower() { var str string str = `goframe_is very nice.to-use` rsStr := gstr.CaseCamelLower(str) fmt.Println(rsStr) // Output: // goframeIsVeryNiceToUse }
CaseDelimited
- 格式: CaseDelimited
- 说明: 将字符串转换中的符号进行替换,该函数第二个参数为替换的uint8类型字符。
示例: del参数为int8类型的35,就是字符 # (井号)
func ExampleCaseDelimited() { var str string var del uint8 str = `goframe_is_very-nice.to-use` del = 35 rsStr := gstr.CaseDelimited(str,del) fmt.Println(rsStr) // Output: // goframe#is#very#nice#to#use }
CaseDelimitedScreaming
- 格式: CaseDelimitedScreaming
- 说明: 将字符串中的符号(空格,下划线,点,中横线)用第二个参数进行替换,该函数第二个参数为替换的uint8类型字符,第三个参数为大小写转换,true为全部转换大写字母,false为全部转为小写字母。
示例: del参数为int8类型的35,就是字符 # (井号)
func ExampleCaseDelimitedScreaming() { var str string var del uint8 var screaming bool str = `goframe_is Very Nice.to-use` del = 35 screaming = true rsStr := gstr.CaseDelimitedScreaming(str,del,screaming) fmt.Println(rsStr) // Output: // GOFRAME#IS#VERY#NICE#TO#USE }
CaseKebab
- 格式: CaseKebab
- 说明: 将字符串转换中的符号(下划线,空格,点,)用中横线(-)替换,并全部转换为小写字母。
示例:
func ExampleCaseKebab() { var str string str = `goframe_is Very Nice.to-use` rsStr := gstr.CaseKebab(str) fmt.Println(rsStr) // Output: // goframe-is-very-nice-to-use }
CaseKebabScreaming
- 格式: CaseKebabScreaming
- 说明: 将字符串转换中的符号(下划线,空格,点,中横线)用中横线(-)替换,并全部转换为大写字母。
示例:
func ExampleCaseKebabScreaming() { var str string str = `goframe_is Very Nice.to-use` rsStr := gstr.CaseKebabScreaming(str) fmt.Println(rsStr) // Output: // GOFRAME-IS-VERY-NICE-TO-USE }
CaseSnake
- 格式: CaseSnake
- 说明: 将字符串转换中的符号(下划线,空格,点,中横线)用下划线( _ )替换,并全部转换为小写字母。
示例:
func ExampleCaseSnake() { var str string str = `goframe_is Very Nice.to-use` rsStr := gstr.CaseSnake(str) fmt.Println(rsStr) // Output: // goframe_is_very_nice_to_use }
CaseSnakeFirstUpper
- 格式: CaseSnakeFirstUpper
- 说明: 当字符串中的字母为大写时,将大写字母转换为小写字母并在其前面增加一个下划线( _ ),首字母大写时,只转换为小写,前面不增加下划线( _ )。
示例:
func ExampleCaseSnakeFirstUpper() { var str string str = `GoframeIsVeryNiceToUse` rsStr := gstr.CaseSnakeFirstUpper(str) fmt.Println(rsStr) // Output: // goframe_is_very_nice_to_use }
CaseSnakeScreaming
- 格式: CaseSnakeScreaming
- 说明: 当字符串中的符号(下划线,空格,点,中横线),全部替换为下划线( _ ),并将所有英文字母转为大写。
示例:
func ExampleCaseSnakeScreaming() { var str string str = `goframe_is Very Nice.to-use` rsStr := gstr.CaseSnakeScreaming(str) fmt.Println(rsStr) // Output: // GOFRAME_IS_VERY_NICE_TO_USE }
Chr
- 格式: Chr
- 说明: 将ASCII码表中对应的十进制数字转换为字符, 其 ASCII码 (American Standard Code for Information Interchange) 为 美国信息交换标准代码,
示例: 在ASCII表中英文大写字母A对应的十进制数为65
func ExampleChr() { var ascii int ascii = 65 rsStr := gstr.Chr(ascii) fmt.Println(rsStr) // Output: // A }
Count
说明:
格式:
示例:
- No labels