mirror of
https://github.com/pyihe/go-pkg.git
synced 2025-09-27 20:32:12 +08:00
feature(strings): add Func
This commit is contained in:
@@ -174,38 +174,6 @@ func MaxSubStrLen(str string) int {
|
|||||||
return maxLen
|
return maxLen
|
||||||
}
|
}
|
||||||
|
|
||||||
// FilterRepeatBySlice 元素去重
|
|
||||||
func FilterRepeatBySlice(slc []string) []string {
|
|
||||||
var result []string
|
|
||||||
for i := range slc {
|
|
||||||
flag := true
|
|
||||||
for j := range result {
|
|
||||||
if slc[i] == result[j] {
|
|
||||||
flag = false
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if flag {
|
|
||||||
result = append(result, slc[i])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
// FilterRepeatByMap 通过map元素去重
|
|
||||||
func FilterRepeatByMap(slc []string) []string {
|
|
||||||
var result []string
|
|
||||||
tempMap := make(map[string]byte, 0)
|
|
||||||
for _, e := range slc {
|
|
||||||
l := len(tempMap)
|
|
||||||
tempMap[e] = 0
|
|
||||||
if len(tempMap) != l {
|
|
||||||
result = append(result, e)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
func ToLower(s string) string {
|
func ToLower(s string) string {
|
||||||
if isLower(s) {
|
if isLower(s) {
|
||||||
return s
|
return s
|
||||||
@@ -221,16 +189,6 @@ func ToLower(s string) string {
|
|||||||
return bytes.String(b)
|
return bytes.String(b)
|
||||||
}
|
}
|
||||||
|
|
||||||
func isLower(s string) bool {
|
|
||||||
for i := range s {
|
|
||||||
c := s[i]
|
|
||||||
if c >= 'A' && c <= 'Z' {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
func ToUpper(s string) string {
|
func ToUpper(s string) string {
|
||||||
if isUpper(s) {
|
if isUpper(s) {
|
||||||
return s
|
return s
|
||||||
@@ -246,12 +204,45 @@ func ToUpper(s string) string {
|
|||||||
return bytes.String(b)
|
return bytes.String(b)
|
||||||
}
|
}
|
||||||
|
|
||||||
func isUpper(s string) bool {
|
func Add(s []string, a string) []string {
|
||||||
for i := range s {
|
return append(s, a)
|
||||||
c := s[i]
|
}
|
||||||
if c >= 'a' && c <= 'z' {
|
|
||||||
return false
|
func AddWithDistinct(s []string, a string) []string {
|
||||||
|
for _, e := range s {
|
||||||
|
if e == a {
|
||||||
|
return s
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true
|
return Add(s, a)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Union(s []string, a []string) []string {
|
||||||
|
for _, ae := range a {
|
||||||
|
found := false
|
||||||
|
for _, se := range s {
|
||||||
|
if ae == se {
|
||||||
|
found = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !found {
|
||||||
|
s = append(s, ae)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return s
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unique 字符串切片去重
|
||||||
|
func Unique(s []string) (r []string) {
|
||||||
|
loop:
|
||||||
|
for _, se := range s {
|
||||||
|
for _, rv := range r {
|
||||||
|
if se == rv {
|
||||||
|
continue loop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
r = append(r, se)
|
||||||
|
}
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
21
strings/strings_unexportable.go
Normal file
21
strings/strings_unexportable.go
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
package strings
|
||||||
|
|
||||||
|
func isUpper(s string) bool {
|
||||||
|
for i := range s {
|
||||||
|
c := s[i]
|
||||||
|
if c >= 'a' && c <= 'z' {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
func isLower(s string) bool {
|
||||||
|
for i := range s {
|
||||||
|
c := s[i]
|
||||||
|
if c >= 'A' && c <= 'Z' {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
Reference in New Issue
Block a user