github.com/easysoft/zendata@v0.0.0-20240513203326-705bd5a7fd67/pkg/utils/string/string.go (about) 1 package stringUtils 2 3 import ( 4 "bytes" 5 "encoding/binary" 6 "encoding/hex" 7 "encoding/json" 8 "strconv" 9 "strings" 10 "unicode" 11 12 constant "github.com/easysoft/zendata/internal/pkg/const" 13 ) 14 15 func TrimAll(str string) string { 16 str = strings.Trim(str, "\n") 17 str = strings.TrimSpace(str) 18 19 return str 20 } 21 22 func Ucfirst(str string) string { 23 for i, v := range str { 24 return string(unicode.ToUpper(v)) + str[i+1:] 25 } 26 return "" 27 } 28 func UcAll(str string) string { 29 ret := "" 30 31 for _, v := range str { 32 ret += string(unicode.ToUpper(v)) 33 } 34 return ret 35 } 36 37 func Lcfirst(str string) string { 38 for i, v := range str { 39 return string(unicode.ToLower(v)) + str[i+1:] 40 } 41 return "" 42 } 43 44 func U2s(form string) (to string, err error) { 45 bs, err := hex.DecodeString(strings.Replace(form, `\u`, ``, -1)) 46 if err != nil { 47 return 48 } 49 for i, bl, br, r := 0, len(bs), bytes.NewReader(bs), uint16(0); i < bl; i += 2 { 50 binary.Read(br, binary.BigEndian, &r) 51 to += string(r) 52 } 53 return 54 } 55 56 func BoolToPass(b bool) string { 57 if b { 58 return constant.PASS.String() 59 } else { 60 return constant.FAIL.String() 61 } 62 } 63 64 func FindInArrBool(str string, arr []string) bool { 65 found, _ := FindInArr(str, arr) 66 return found 67 } 68 func FindInArr(str string, arr []string) (bool, int) { 69 for index, s := range arr { 70 if str == s { 71 return true, index 72 } 73 } 74 75 return false, -1 76 } 77 78 func StrInArr(str string, arr []string) bool { 79 found, _ := FindInArr(str, arr) 80 return found 81 } 82 func InArray(need interface{}, arr []string) bool { 83 for _, v := range arr { 84 if need == v { 85 return true 86 } 87 } 88 return false 89 } 90 91 func GetNumbWidth(numb int) int { 92 str := strconv.Itoa(numb) 93 width := len(str) 94 95 return width 96 } 97 98 func StartWith(str, sub string) bool { 99 return strings.Index(str, sub) == 0 100 } 101 func EndWith(str, sub string) bool { 102 return strings.Contains(str, sub) && strings.LastIndex(str, sub) == len(str)-len(sub) 103 } 104 105 func FormatJsonStr(str string) (ret string) { 106 var out bytes.Buffer 107 json.Indent(&out, []byte(str), "", " ") 108 ret = out.String() 109 110 return 111 }