util.go 940 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package util
  2. import (
  3. "bytes"
  4. "strings"
  5. )
  6. // 简单的下划线转驼峰格式
  7. func FmtUnderLine2Camel(in string, upperStart bool) string {
  8. if strings.TrimSpace(in) == "" {
  9. return ""
  10. }
  11. var words []string
  12. if strings.Contains(in, "_") {
  13. words = strings.Split(in, "_")
  14. if len(words) == 0 {
  15. return ""
  16. }
  17. }
  18. if len(words) == 0 {
  19. return strings.Title(in)
  20. }
  21. var buffer bytes.Buffer
  22. for index, word := range words {
  23. if strings.TrimSpace(word) == "" {
  24. continue
  25. }
  26. bts := []byte(word)
  27. if index == 0 && !upperStart {
  28. bts[0] = bytes.ToLower([]byte{bts[0]})[0]
  29. buffer.Write(bts)
  30. continue
  31. }
  32. bts = bytes.Title(bts)
  33. buffer.Write(bts)
  34. }
  35. return buffer.String()
  36. }
  37. func Abbr(in string) string {
  38. ar := strings.Split(in, "_")
  39. var abbrBuffer bytes.Buffer
  40. for _, item := range ar {
  41. bts := []byte(item)
  42. if len(bts) == 0 {
  43. continue
  44. }
  45. abbrBuffer.Write([]byte{bts[0]})
  46. }
  47. return abbrBuffer.String()
  48. }