SplitUpperCase slices each string segment before and after each upper-case rune.
(v ...interface{})
| 104 | // SplitUpperCase slices each string segment before and after each upper-case |
| 105 | // rune. |
| 106 | func (Functions) SplitUpperCase(v ...interface{}) stringList { |
| 107 | l := stringify(v...) |
| 108 | out := stringList{} |
| 109 | for _, s := range l { |
| 110 | str := "" |
| 111 | for _, r := range s { |
| 112 | if unicode.IsUpper(r) { |
| 113 | if len(str) > 0 { |
| 114 | out = append(out, str) |
| 115 | str = "" |
| 116 | } |
| 117 | out = append(out, string(r)) |
| 118 | } else { |
| 119 | str += string(r) |
| 120 | } |
| 121 | } |
| 122 | if len(str) > 0 { |
| 123 | out = append(out, str) |
| 124 | } |
| 125 | } |
| 126 | return out |
| 127 | } |
| 128 | |
| 129 | // SplitPascalCase slices each string segment at each transition from an letter |
| 130 | // rune to a upper-case letter rune. |