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) //*** +} +``` + + + + + + + + +