stringutil.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package util
  2. import (
  3. "strings"
  4. "unicode"
  5. )
  6. func FormatField(field string) (snakeCase, upperCamelCase, lowerCamelCase string) {
  7. snakeCase = field
  8. list := strings.Split(field, "_")
  9. upperCaseList := make([]string, 0)
  10. lowerCaseList := make([]string, 0)
  11. for index, word := range list {
  12. upperStart := convertUpperStart(word)
  13. lowerStart := convertLowerStart(word)
  14. upperCaseList = append(upperCaseList, upperStart)
  15. if index == 0 {
  16. lowerCaseList = append(lowerCaseList, lowerStart)
  17. } else {
  18. lowerCaseList = append(lowerCaseList, upperStart)
  19. }
  20. }
  21. upperCamelCase = strings.Join(upperCaseList, "")
  22. lowerCamelCase = strings.Join(lowerCaseList, "")
  23. return
  24. }
  25. func convertLowerStart(in string) string {
  26. var resp []rune
  27. for index, r := range in {
  28. if index == 0 {
  29. r = unicode.ToLower(r)
  30. }
  31. resp = append(resp, r)
  32. }
  33. return string(resp)
  34. }
  35. func convertUpperStart(in string) string {
  36. var resp []rune
  37. for index, r := range in {
  38. if index == 0 {
  39. r = unicode.ToUpper(r)
  40. }
  41. resp = append(resp, r)
  42. }
  43. return string(resp)
  44. }