strings.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. package otherutils
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "strconv"
  6. "strings"
  7. )
  8. // 判断一个int类型的值是否在一个数组或者切片中
  9. func ArrayExistInt(value int, array []int) bool {
  10. for _, v := range array {
  11. if value == v {
  12. return true
  13. }
  14. }
  15. return false
  16. }
  17. // 判断一个int32类型的值是否在一个数组或者切片中
  18. func ArrayExistInt32(value int32, array []int32) bool {
  19. for _, v := range array {
  20. if value == v {
  21. return true
  22. }
  23. }
  24. return false
  25. }
  26. // 判断一个int64类型的值是否在一个数组或者切片中
  27. func ArrayExistInt64(value int64, array []int64) bool {
  28. for _, v := range array {
  29. if value == v {
  30. return true
  31. }
  32. }
  33. return false
  34. }
  35. // 判断一个string类型的值是否在一个数组或者切片中
  36. func ArrayExistString(value string, array []string) bool {
  37. for _, v := range array {
  38. if value == v {
  39. return true
  40. }
  41. }
  42. return false
  43. }
  44. // 返回分割后转换为string
  45. func StringSplitString(s, sep string) ([]string, error) {
  46. ret := make([]string, 0)
  47. str := strings.Split(s, sep)
  48. for _, v := range str {
  49. if v != "" {
  50. ret = append(ret, v)
  51. }
  52. }
  53. return ret, nil
  54. }
  55. // 返回分割后转换为int
  56. func StringSplitInt(s, sep string) ([]int, error) {
  57. ret := make([]int, 0)
  58. str := strings.Split(s, sep)
  59. for _, v := range str {
  60. if v != "" {
  61. value, err := strconv.Atoi(v)
  62. if err != nil {
  63. return ret, err
  64. }
  65. ret = append(ret, value)
  66. }
  67. }
  68. return ret, nil
  69. }
  70. // 返回分割后转换为int64
  71. func StringSplitInt64(s, sep string) ([]int64, error) {
  72. ret := make([]int64, 0)
  73. str := strings.Split(s, sep)
  74. for _, v := range str {
  75. if v != "" {
  76. value, err := strconv.ParseInt(v, 10, 64)
  77. if err != nil {
  78. return ret, err
  79. }
  80. ret = append(ret, value)
  81. }
  82. }
  83. return ret, nil
  84. }
  85. // []string后转换为[]int64
  86. func ArrStringConvertArrInt64(s []string) ([]int64, error) {
  87. ret := make([]int64, 0)
  88. for _, v := range s {
  89. if v != "" {
  90. value, err := strconv.ParseInt(v, 10, 64)
  91. if err != nil {
  92. return ret, err
  93. }
  94. ret = append(ret, value)
  95. }
  96. }
  97. return ret, nil
  98. }
  99. // []Int64后转换为[]string
  100. func ArrInt64ConvertArrString(s []int64) []string {
  101. ret := make([]string, 0)
  102. for _, v := range s {
  103. value := strconv.FormatInt(v, 10)
  104. ret = append(ret, value)
  105. }
  106. return ret
  107. }
  108. // 获取key
  109. func GetKey(a int, b int) string {
  110. return fmt.Sprintf("%v:%v", a, b)
  111. }
  112. // 获取keys
  113. func GetKeys(a int, b int, c int) string {
  114. return fmt.Sprintf("%v:%v:%v", a, b, c)
  115. }
  116. func DumpToJSON(s interface{}) string {
  117. marshal, err := json.Marshal(s)
  118. if err != nil {
  119. return err.Error()
  120. }
  121. return string(marshal)
  122. }