1 Star 1 Fork 0

李爽 / go-utils

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
string.go 3.75 KB
一键复制 编辑 原始数据 按行查看 历史
李爽 提交于 2024-03-12 15:28 . 添加字符串合并函数ConcatStrings
package utils
import (
"regexp"
"strconv"
"strings"
)
// ConcatStrings
// 使用strings.Builder高效地拼接多个字符串
func ConcatStrings(parts ...string) string {
var builder strings.Builder
// 遍历所有传入的字符串部分,并将它们依次写入builder
for _, part := range parts {
builder.WriteString(part)
}
// 返回拼接后的结果
return builder.String()
}
// RemoveTextWithinParens
// 从字符串中删除括号内的文本。
func RemoveTextWithinParens(str string) string {
// 编译正则表达式以匹配 ( 和 )。
re := regexp.MustCompile(`\(.*?\)`)
// 将匹配的文本替换为空字符串。
return re.ReplaceAllString(str, "")
}
// RemoveTextWithinMatch
// 按正则表达式移除字符串中的行
// method为1则移除匹配项
// method为2则移除不匹配项
func RemoveTextWithinMatch(str string, pattern string, method int) string {
if method != 1 && method != 2 {
return str
}
array := strings.Split(str, "\n")
result := make([]string, 0)
for _, item := range array {
match := MatchString(item, pattern)
// 如果method为1,那么移除匹配项,所以判断未匹配的加入返回切片
if method == 1 && !match {
result = append(result, strings.TrimLeft(item, "\r\n "))
}
// 如果method为2,那么移除不匹配项,所以判断匹配的加入返回切片
if method == 2 && match {
result = append(result, strings.TrimLeft(item, "\r\n "))
}
}
return strings.Join(result, "\n")
}
// RemoveMultiSpaces
// 从字符串中移除多个连续空格字符
func RemoveMultiSpaces(str string) string {
arr := strings.Split(str, " ")
result := make([]string, 0)
for _, s := range arr {
if s != "" {
result = append(result, s)
}
}
return strings.Join(result, " ")
}
// StringIsInt
// 检查字符串是否是一个整数。
func StringIsInt(str string) (int, bool) {
result, err := strconv.Atoi(str)
return result, err == nil
}
// StringIsInt64
// 检查字符串是否是一个64位整数。
func StringIsInt64(str string) (int64, bool) {
result, err := strconv.ParseInt(str, 10, 64)
return result, err == nil
}
// StringIsEmpty
// 检查字符串是否为空。
func StringIsEmpty(str string) bool {
return str == ""
}
// StringEndWithIgnoreCase
// 检查字符串是否以指定的后缀结尾,忽略大小写。
func StringEndWithIgnoreCase(str, suffix string) bool {
return strings.HasSuffix(strings.ToLower(str), strings.ToLower(suffix))
}
// StringEndWith
// 检查字符串是否以指定的后缀结尾。
func StringEndWith(str, suffix string) bool {
return strings.HasSuffix(str, suffix)
}
// StringStartWithIgnoreCase
// 检查字符串是否以指定的前缀开头,忽略大小写。
func StringStartWithIgnoreCase(str, prefix string) bool {
return strings.HasPrefix(strings.ToLower(str), strings.ToLower(prefix))
}
// StringStartWith
// 检查字符串是否以指定的前缀开头。
func StringStartWith(str, prefix string) bool {
return strings.HasPrefix(str, prefix)
}
// TrimTrailingCharacter
// 从字符串中删除尾随字符。
func TrimTrailingCharacter(str, character string) string {
return strings.TrimRight(str, character)
}
// TrimTrailingCharacterIgnoreCase
// 从字符串中删除尾随字符,忽略大小写。
func TrimTrailingCharacterIgnoreCase(str, character string) string {
return strings.TrimRight(strings.ToLower(str), strings.ToLower(character))
}
// TrimLeadingCharacter
// 从字符串中删除前导字符。
func TrimLeadingCharacter(str, character string) string {
return strings.TrimLeft(str, character)
}
// TrimLeadingCharacterIgnoreCase
// 从字符串中删除前导字符,忽略大小写。
func TrimLeadingCharacterIgnoreCase(str, character string) string {
return strings.TrimLeft(strings.ToLower(str), strings.ToLower(character))
}
Go
1
https://gitee.com/love_bass/go-utils.git
git@gitee.com:love_bass/go-utils.git
love_bass
go-utils
go-utils
v0.7.1

搜索帮助