mirror of
https://github.com/duke-git/lancet.git
synced 2026-03-01 00:35:28 +08:00
LowerFirst: use slicing and utf8 func tools (#5)
Replace looping with slicing and utf8 func tools operations.
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
|||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
"unicode"
|
"unicode"
|
||||||
|
"unicode/utf8"
|
||||||
)
|
)
|
||||||
|
|
||||||
// CamelCase covert string to camelCase string.
|
// CamelCase covert string to camelCase string.
|
||||||
@@ -59,20 +60,10 @@ func LowerFirst(s string) string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
res := ""
|
r, size := utf8.DecodeRuneInString(s)
|
||||||
for i, v := range []rune(s) {
|
r = unicode.ToLower(r)
|
||||||
if i == 0 {
|
|
||||||
if v >= 65 && v <= 96 {
|
return string(r) + s[size:]
|
||||||
v += 32
|
|
||||||
res += string(v)
|
|
||||||
} else {
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
res += string(v)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return res
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// PadEnd pads string on the right side if it's shorter than size.
|
// PadEnd pads string on the right side if it's shorter than size.
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ func TestLowerFirst(t *testing.T) {
|
|||||||
lowerFirst(t, "foo", "foo")
|
lowerFirst(t, "foo", "foo")
|
||||||
lowerFirst(t, "BAR", "bAR")
|
lowerFirst(t, "BAR", "bAR")
|
||||||
lowerFirst(t, "FOo", "fOo")
|
lowerFirst(t, "FOo", "fOo")
|
||||||
|
lowerFirst(t, "FOo大", "fOo大")
|
||||||
}
|
}
|
||||||
|
|
||||||
func lowerFirst(t *testing.T, test string, expected string) {
|
func lowerFirst(t *testing.T, test string, expected string) {
|
||||||
|
|||||||
Reference in New Issue
Block a user