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  }