diff --git a/docs/strutil.md b/docs/strutil.md new file mode 100644 index 0000000..7b83263 --- /dev/null +++ b/docs/strutil.md @@ -0,0 +1,574 @@ +# Strutil +Package strutil contains some functions to manipulate string. + +
+ +## Source: + +[https://github.com/duke-git/lancet/blob/main/strutil/string.go](https://github.com/duke-git/lancet/blob/main/strutil/string.go) + + +
+ +## Usage: +```go +import ( + "github.com/duke-git/lancet/strutil" +) +``` + +
+ +## Index +- [After](#After) +- [AfterLast](#AfterLast) +- [Before](#Before) +- [BeforeLast](#BeforeLast) +- [CamelCase](#CamelCase) +- [Capitalize](#Capitalize) +- [IsString](#IsString) +- [KebabCase](#KebabCase) +- [LowerFirst](#LowerFirst) +- [UpperFirst](#UpperFirst) +- [PadEnd](#PadEnd) +- [PadStart](#PadStart) +- [ReverseStr](#ReverseStr) +- [SnakeCase](#SnakeCase) +- [Wrap](#Wrap) + +- [Unwrap](#Unwrap) + + +
+ +## Documentation + + +### After +

Creates substring in source string after position when char first appear.

+ +Signature: + +```go +func After(s, char string) string +``` +Example: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.After("lancet", "") + fmt.Println(s1) //lancet + + s2 := strutil.After("github.com/test/lancet", "/") + fmt.Println(s2) //test/lancet + + s3 := strutil.After("github.com/test/lancet", "test") + fmt.Println(s3) // /lancet +} +``` + + + +### AfterLast +

Creates substring in source string after position when char last appear.

+ +Signature: + +```go +func AfterLast(s, char string) string +``` +Example: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.AfterLast("lancet", "") + fmt.Println(s1) //lancet + + s2 := strutil.AfterLast("github.com/test/lancet", "/") + fmt.Println(s2) //lancet + + s3 := strutil.AfterLast("github.com/test/test/lancet", "test") + fmt.Println(s3) // /test/lancet +} +``` + + + + +### Before +

Creates substring in source string before position when char first appear.

+ +Signature: + +```go +func Before(s, char string) string +``` +Example: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.Before("lancet", "") + fmt.Println(s1) //lancet + + s2 := strutil.Before("github.com/test/lancet", "/") + fmt.Println(s2) //github.com + + s3 := strutil.Before("github.com/test/lancet", "test") + fmt.Println(s3) // github.com/ +} +``` + + + + +### BeforeLast +

Creates substring in source string before position when char first appear.

+ +Signature: + +```go +func BeforeLast(s, char string) string +``` +Example: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.BeforeLast("lancet", "") + fmt.Println(s1) //lancet + + s2 := strutil.BeforeLast("github.com/test/lancet", "/") + fmt.Println(s2) //github.com/test + + s3 := strutil.BeforeLast("github.com/test/test/lancet", "test") + fmt.Println(s3) //github.com/test/ +} +``` + + + + +### CamelCase +

Covert string to camelCase string.

+ +Signature: + +```go +func CamelCase(s string) string +``` +Example: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.CamelCase("foo_bar") + fmt.Println(s1) //fooBar + + s2 := strutil.CamelCase("Foo-Bar") + fmt.Println(s2) //fooBar + + s3 := strutil.CamelCase("Foo&bar") + fmt.Println(s3) //fooBar + + s4 := strutil.CamelCase("foo bar") + fmt.Println(s4) //fooBar +} +``` + + + + +### Capitalize +

Convert the first character of a string to upper case.

+ +Signature: + +```go +func Capitalize(s string) string +``` +Example: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.Capitalize("foo") + fmt.Println(s1) //foo + + s2 := strutil.Capitalize("Foo") + fmt.Println(s2) //foo + + s3 := strutil.Capitalize("FOo" + fmt.Println(s3) //fOo +} +``` + + + +### IsString +

Check if the value's data type is string.

+ +Signature: + +```go +func IsString(v interface{}) bool +``` +Example: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + fmt.Println(strutil.IsString("lancet")) //true + fmt.Println(strutil.IsString("")) //true + + fmt.Println(strutil.IsString(1)) //false + fmt.Println(strutil.IsString("")) //false + fmt.Println(strutil.IsString([]string{})) //false +} +``` + + + +### KebabCase +

Covert string to kebab-case.

+ +Signature: + +```go +func KebabCase(s string) string +``` +Example: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.KebabCase("Foo Bar-") + fmt.Println(s1) //foo-bar + + s2 := strutil.KebabCase("foo_Bar") + fmt.Println(s2) //foo-bar + + s3 := strutil.KebabCase("fooBar") + fmt.Println(s3) //foo-bar + + s4 := strutil.KebabCase("__FOO_BAR__") + fmt.Println(s4) //f-o-o-b-a-r +} +``` + + + + +### LowerFirst +

Convert the first character of string to lower case.

+ +Signature: + +```go +func LowerFirst(s string) string +``` +Example: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.LowerFirst("foo") + fmt.Println(s1) //foo + + s2 := strutil.LowerFirst("BAR") + fmt.Println(s2) //bAR + + s3 := strutil.LowerFirst("FOo") + fmt.Println(s3) //fOo + + s4 := strutil.LowerFirst("fOo大") + fmt.Println(s4) //fOo大 +} +``` + + + + +### UpperFirst +

Convert the first character of string to upper case.

+ +Signature: + +```go +func UpperFirst(s string) string +``` +Example: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.UpperFirst("foo") + fmt.Println(s1) //Foo + + s2 := strutil.UpperFirst("bAR") + fmt.Println(s2) //BAR + + s3 := strutil.UpperFirst("FOo") + fmt.Println(s3) //FOo + + s4 := strutil.UpperFirst("fOo大") + fmt.Println(s4) //FOo大 +} +``` + + + + +### PadEnd +

Pads string on the right side if it's shorter than size.

+ +Signature: + +```go +func PadEnd(source string, size int, padStr string) string +``` +Example: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.PadEnd("a", 1, "b") + fmt.Println(s1) //a + + s2 := strutil.PadEnd("a", 2, "b") + fmt.Println(s2) //ab + + s3 := strutil.PadEnd("abcd", 6, "mno") + fmt.Println(s3) //abcdmn + + s4 := strutil.PadEnd("abc", 6, "ab") + fmt.Println(s4) //abcaba +} +``` + + + + +### PadStart +

Pads string on the left side if it's shorter than size.

+ +Signature: + +```go +func PadStart(source string, size int, padStr string) string +``` +Example: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.PadStart("a", 1, "b") + fmt.Println(s1) //a + + s2 := strutil.PadStart("a", 2, "b") + fmt.Println(s2) //ba + + s3 := strutil.PadStart("abcd", 6, "mno") + fmt.Println(s3) //mnabcd + + s4 := strutil.PadStart("abc", 6, "ab") + fmt.Println(s4) //abaabc +} +``` + + + + +### ReverseStr +

Return string whose char order is reversed to the given string.

+ +Signature: + +```go +func ReverseStr(s string) string +``` +Example: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.ReverseStr("abc") + fmt.Println(s1) //cba + + s2 := strutil.ReverseStr("12345") + fmt.Println(s2) //54321 +} +``` + + + +### SnakeCase +

Covert string to snake_case.

+ +Signature: + +```go +func SnakeCase(s string) string +``` +Example: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.SnakeCase("Foo Bar-") + fmt.Println(s1) //foo_bar + + s2 := strutil.SnakeCase("foo_Bar") + fmt.Println(s2) //foo_bar + + s3 := strutil.SnakeCase("fooBar") + fmt.Println(s3) //foo_bar + + s4 := strutil.SnakeCase("__FOO_BAR__") + fmt.Println(s4) //f_o_o_b_a_r + + s5 := strutil.SnakeCase("aBbc-s$@a&%_B.B^C") + fmt.Println(s5) //a_bbc_s_a_b_b_c +} +``` + + + + +### Wrap +

Wrap a string with another string.

+ +Signature: + +```go +func Wrap(str string, wrapWith string) string +``` +Example: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.Wrap("ab", "") + fmt.Println(s1) //ab + + s2 := strutil.Wrap("", "*") + fmt.Println(s2) //"" + + s3 := strutil.Wrap("ab", "*") + fmt.Println(s3) //*ab* + + s4 := strutil.Wrap("ab", "\"") + fmt.Println(s4) //\"ab\" + + s5 := strutil.Wrap("ab", "'") + fmt.Println(s5) //'ab' +} +``` + + + + +### Wrap +

Unwrap a given string from anther string. will change str value.

+ +Signature: + +```go +func Unwrap(str string, wrapToken string) string +``` +Example: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.Unwrap("ab", "") + fmt.Println(s1) //ab + + s2 := strutil.Unwrap("ab", "*") + fmt.Println(s2) //ab + + s3 := strutil.Unwrap("**ab**", "*") + fmt.Println(s3) //*ab* + + s4 := strutil.Unwrap("*ab", "*") + fmt.Println(s4) //*ab + + s5 := strutil.Unwrap("***", "**") + fmt.Println(s5) //*** +} +``` + + + + + + + + + diff --git a/docs/strutil_zh-CN.md b/docs/strutil_zh-CN.md new file mode 100644 index 0000000..35d3ef3 --- /dev/null +++ b/docs/strutil_zh-CN.md @@ -0,0 +1,575 @@ +# Strutil +strutil包含处理字符串的相关函数。 + +
+ +## 源码: + +[https://github.com/duke-git/lancet/blob/main/strutil/string.go](https://github.com/duke-git/lancet/blob/main/strutil/string.go) + + +
+ +## 用法: +```go +import ( + "github.com/duke-git/lancet/strutil" +) +``` + +
+ +## 目录 +- [After](#After) +- [AfterLast](#AfterLast) +- [Before](#Before) +- [BeforeLast](#BeforeLast) +- [CamelCase](#CamelCase) +- [Capitalize](#Capitalize) +- [IsString](#IsString) +- [KebabCase](#KebabCase) +- [LowerFirst](#LowerFirst) +- [UpperFirst](#UpperFirst) +- [PadEnd](#PadEnd) +- [PadStart](#PadStart) +- [ReverseStr](#ReverseStr) +- [SnakeCase](#SnakeCase) +- [Wrap](#Wrap) + +- [Unwrap](#Unwrap) + + +
+ + +## Documentation文档 + + +### After +

截取源字符串中char首次出现时的位置之后的子字符串

+ +函数签名: + +```go +func After(s, char string) string +``` +例子: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.After("lancet", "") + fmt.Println(s1) //lancet + + s2 := strutil.After("github.com/test/lancet", "/") + fmt.Println(s2) //test/lancet + + s3 := strutil.After("github.com/test/lancet", "test") + fmt.Println(s3) // /lancet +} +``` + + + +### AfterLast +

截取源字符串中char最后一次出现时的位置之后的子字符串

+ +函数签名: + +```go +func AfterLast(s, char string) string +``` +例子: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.AfterLast("lancet", "") + fmt.Println(s1) //lancet + + s2 := strutil.AfterLast("github.com/test/lancet", "/") + fmt.Println(s2) //lancet + + s3 := strutil.AfterLast("github.com/test/test/lancet", "test") + fmt.Println(s3) // /lancet +} +``` + + + + +### Before +

截取源字符串中char首次出现时的位置之前的子字符串

+ +函数签名: + +```go +func Before(s, char string) string +``` +例子: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.Before("lancet", "") + fmt.Println(s1) //lancet + + s2 := strutil.Before("github.com/test/lancet", "/") + fmt.Println(s2) //github.com + + s3 := strutil.Before("github.com/test/lancet", "test") + fmt.Println(s3) // github.com/ +} +``` + + + + +### BeforeLast +

截取源字符串中char最后一次出现时的位置之前的子字符串

+ +函数签名: + +```go +func BeforeLast(s, char string) string +``` +例子: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.BeforeLast("lancet", "") + fmt.Println(s1) //lancet + + s2 := strutil.BeforeLast("github.com/test/lancet", "/") + fmt.Println(s2) //github.com/test + + s3 := strutil.BeforeLast("github.com/test/test/lancet", "test") + fmt.Println(s3) //github.com/test/ +} +``` + + + + +### CamelCase +

将字符串转换为驼峰式字符串

+ +函数签名: + +```go +func CamelCase(s string) string +``` +例子: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.CamelCase("foo_bar") + fmt.Println(s1) //fooBar + + s2 := strutil.CamelCase("Foo-Bar") + fmt.Println(s2) //fooBar + + s3 := strutil.CamelCase("Foo&bar") + fmt.Println(s3) //fooBar + + s4 := strutil.CamelCase("foo bar") + fmt.Println(s4) //fooBar +} +``` + + + + +### Capitalize +

将字符串的第一个字符转换为大写

+ +函数签名: + +```go +func Capitalize(s string) string +``` +例子: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.Capitalize("foo") + fmt.Println(s1) //foo + + s2 := strutil.Capitalize("Foo") + fmt.Println(s2) //foo + + s3 := strutil.Capitalize("FOo" + fmt.Println(s3) //fOo +} +``` + + + +### IsString +

检查值的数据类型是否为字符串

+ +函数签名: + +```go +func IsString(v interface{}) bool +``` +例子: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + fmt.Println(strutil.IsString("lancet")) //true + fmt.Println(strutil.IsString("")) //true + + fmt.Println(strutil.IsString(1)) //false + fmt.Println(strutil.IsString("")) //false + fmt.Println(strutil.IsString([]string{})) //false +} +``` + + + +### KebabCase +

将字符串转换为kebab-case

+ +函数签名: + +```go +func KebabCase(s string) string +``` +例子: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.KebabCase("Foo Bar-") + fmt.Println(s1) //foo-bar + + s2 := strutil.KebabCase("foo_Bar") + fmt.Println(s2) //foo-bar + + s3 := strutil.KebabCase("fooBar") + fmt.Println(s3) //foo-bar + + s4 := strutil.KebabCase("__FOO_BAR__") + fmt.Println(s4) //f-o-o-b-a-r +} +``` + + + + +### LowerFirst +

将字符串的第一个字符转换为小写

+ +函数签名: + +```go +func LowerFirst(s string) string +``` +例子: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.LowerFirst("foo") + fmt.Println(s1) //foo + + s2 := strutil.LowerFirst("BAR") + fmt.Println(s2) //bAR + + s3 := strutil.LowerFirst("FOo") + fmt.Println(s3) //fOo + + s4 := strutil.LowerFirst("fOo大") + fmt.Println(s4) //fOo大 +} +``` + + + + +### UpperFirst +

将字符串的第一个字符转换为大写

+ +函数签名: + +```go +func UpperFirst(s string) string +``` +例子: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.UpperFirst("foo") + fmt.Println(s1) //Foo + + s2 := strutil.UpperFirst("bAR") + fmt.Println(s2) //BAR + + s3 := strutil.UpperFirst("FOo") + fmt.Println(s3) //FOo + + s4 := strutil.UpperFirst("fOo大") + fmt.Println(s4) //FOo大 +} +``` + + + + +### PadEnd +

如果字符串长度短于size,则在右侧填充字符串

+ +函数签名: + +```go +func PadEnd(source string, size int, padStr string) string +``` +例子: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.PadEnd("a", 1, "b") + fmt.Println(s1) //a + + s2 := strutil.PadEnd("a", 2, "b") + fmt.Println(s2) //ab + + s3 := strutil.PadEnd("abcd", 6, "mno") + fmt.Println(s3) //abcdmn + + s4 := strutil.PadEnd("abc", 6, "ab") + fmt.Println(s4) //abcaba +} +``` + + + + +### PadStart +

如果字符串长度短于size,则在左侧填充字符串

+ +函数签名: + +```go +func PadStart(source string, size int, padStr string) string +``` +例子: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.PadStart("a", 1, "b") + fmt.Println(s1) //a + + s2 := strutil.PadStart("a", 2, "b") + fmt.Println(s2) //ba + + s3 := strutil.PadStart("abcd", 6, "mno") + fmt.Println(s3) //mnabcd + + s4 := strutil.PadStart("abc", 6, "ab") + fmt.Println(s4) //abaabc +} +``` + + + + +### ReverseStr +

返回字符顺序与给定字符串相反的字符串

+ +函数签名: + +```go +func ReverseStr(s string) string +``` +例子: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.ReverseStr("abc") + fmt.Println(s1) //cba + + s2 := strutil.ReverseStr("12345") + fmt.Println(s2) //54321 +} +``` + + + +### SnakeCase +

将字符串转换为snake_case形式

+ +函数签名: + +```go +func SnakeCase(s string) string +``` +例子: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.SnakeCase("Foo Bar-") + fmt.Println(s1) //foo_bar + + s2 := strutil.SnakeCase("foo_Bar") + fmt.Println(s2) //foo_bar + + s3 := strutil.SnakeCase("fooBar") + fmt.Println(s3) //foo_bar + + s4 := strutil.SnakeCase("__FOO_BAR__") + fmt.Println(s4) //f_o_o_b_a_r + + s5 := strutil.SnakeCase("aBbc-s$@a&%_B.B^C") + fmt.Println(s5) //a_bbc_s_a_b_b_c +} +``` + + + + +### Wrap +

用另一个字符串包裹一个字符串

+ +函数签名: + +```go +func Wrap(str string, wrapWith string) string +``` +例子: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.Wrap("ab", "") + fmt.Println(s1) //ab + + s2 := strutil.Wrap("", "*") + fmt.Println(s2) //"" + + s3 := strutil.Wrap("ab", "*") + fmt.Println(s3) //*ab* + + s4 := strutil.Wrap("ab", "\"") + fmt.Println(s4) //\"ab\" + + s5 := strutil.Wrap("ab", "'") + fmt.Println(s5) //'ab' +} +``` + + + + +### Unwrap +

用另一个字符串解开包裹一个字符串

+ +函数签名: + +```go +func Unwrap(str string, wrapToken string) string +``` +例子: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/strutil" +) + +func main() { + s1 := strutil.Unwrap("ab", "") + fmt.Println(s1) //ab + + s2 := strutil.Unwrap("ab", "*") + fmt.Println(s2) //ab + + s3 := strutil.Unwrap("**ab**", "*") + fmt.Println(s3) //*ab* + + s4 := strutil.Unwrap("*ab", "*") + fmt.Println(s4) //*ab + + s5 := strutil.Unwrap("***", "**") + fmt.Println(s5) //*** +} +``` + + + + + + + + +