diff --git a/README.md b/README.md index ff79165..e5504d4 100644 --- a/README.md +++ b/README.md @@ -550,6 +550,8 @@ import "github.com/duke-git/lancet/v2/strutil" - **SplitEx** : split a given string which can control the result slice contains empty string or not. [[doc](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#SplitEx)] [[play](https://go.dev/play/p/Us-ySSbWh-3)] +- **Substring** : returns a substring of the specified length starting at the specified offset position. +[[doc](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#Substring)] - **Wrap** : wrap a string with given string. [[doc](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#Wrap)] [[play](https://go.dev/play/p/KoZOlZDDt9y)] diff --git a/README_zh-CN.md b/README_zh-CN.md index 85ee991..a868b0f 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -546,6 +546,8 @@ import "github.com/duke-git/lancet/v2/strutil" - **SplitEx** : 拆分给定的字符串可以控制结果切片是否包含空字符串。 [[doc](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#SplitEx)] [[play](https://go.dev/play/p/Us-ySSbWh-3)] +- **Substring** : 根据指定的位置和长度截取子字符串。 +[[doc](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#Substring)] - **Wrap** : 用给定字符包裹传入的字符串 [[doc](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#Wrap)] [[play](https://go.dev/play/p/KoZOlZDDt9y)] diff --git a/docs/strutil.md b/docs/strutil.md index 6f1b6d2..3365bc3 100644 --- a/docs/strutil.md +++ b/docs/strutil.md @@ -37,6 +37,7 @@ import ( - [SnakeCase](#SnakeCase) - [UpperSnakeCase](#UpperSnakeCase) - [SplitEx](#SplitEx) +- [Substring](#Substring) - [Wrap](#Wrap) - [Unwrap](#Unwrap) @@ -631,6 +632,42 @@ func main() { +### Substring +
Returns a substring of the specified length starting at the specified offset position.
+ +Signature: + +```go +func Substring(s string, offset int, length uint) string +``` +Example: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/v2/strutil" +) + +func main() { + result1 := strutil.Substring("abcde", 1, 3) + fmt.Println(result1) //bcd + + result2 := strutil.Substring("abcde", 1, 5) + fmt.Println(result2) //bcde + + result3 := strutil.Substring("abcde", -1, 3) + fmt.Println(result3) //e + + result4 := strutil.Substring("abcde", -2, 2) + fmt.Println(result4) //de + + result5 := strutil.Substring("abcde", -2, 3) + fmt.Println(result5) //de + + result6 := strutil.Substring("你好,欢迎你", 0, 2) + fmt.Println(result6) //你好 +} +``` ### WrapWrap a string with given string.
diff --git a/docs/strutil_zh-CN.md b/docs/strutil_zh-CN.md index 73c899d..eea20b1 100644 --- a/docs/strutil_zh-CN.md +++ b/docs/strutil_zh-CN.md @@ -37,6 +37,7 @@ import ( - [SnakeCase](#SnakeCase) - [UpperSnakeCase](#UpperSnakeCase) - [SplitEx](#SplitEx) +- [Substring](#Substring) - [Wrap](#Wrap) - [Unwrap](#Unwrap) @@ -600,6 +601,42 @@ func main() { } ``` +### Substring +根据指定的位置和长度截取子字符串
+ +函数签名: + +```go +func Substring(s string, offset int, length uint) string +``` +例子: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/v2/strutil" +) + +func main() { + result1 := strutil.Substring("abcde", 1, 3) + fmt.Println(result1) //bcd + + result2 := strutil.Substring("abcde", 1, 5) + fmt.Println(result2) //bcde + + result3 := strutil.Substring("abcde", -1, 3) + fmt.Println(result3) //e + + result4 := strutil.Substring("abcde", -2, 2) + fmt.Println(result4) //de + + result5 := strutil.Substring("abcde", -2, 3) + fmt.Println(result5) //de + + result6 := strutil.Substring("你好,欢迎你", 0, 2) + fmt.Println(result6) //你好 +} +``` ### Wrap