package main
import (
"fmt"
"strings"
"unicode/utf8"
)
func main() {
fmt.Println(string([]rune("starting chat...")[2]))
fmt.Println(string([]rune("你好,世界!")), []byte("你好,世界!"))
fmt.Println("你好,世界!"[:2], "hello,world!"[:2], []rune("你好,世界"))
fmt.Println("\\", utf8.RuneCountInString("你好,世界!"))
fmt.Println(string(1234567))
fmt.Println("------------------------------------------------")
str1 := "abcdefgw我habc"
str2 := "ebadcgfh我cbaw"
// fmt.Println(RemoveTheSame(str1))
fmt.Println(IsSame(str1, str2))
}
// slice去重处理
func RemoveTheSame(s string) string {
s1 := []string{}
m := make(map[int]string)
for _, v := range s {
m[int(v)] = "ok"
}
for k, _ := range m {
s1 = append(s1, string(k))
}
return strings.Join(s1, "")
}
// 判断2个字符串所含的字符及数量相同
func IsSame(str1 string, str2 string) bool {
count := 0
number := 0
str3 := RemoveTheSame(str1)
str4 := RemoveTheSame(str2)
if len(str3) == len(str4) {
for _, v := range []rune(str3) {
if strings.Contains(str4, string(v)) {
count++
}
}
}
if count == len([]rune(str3)) {
for i := 0; i < len([]rune(str3)); i++ {
if strings.Count(str1, string([]rune(str3)[i])) == strings.Count(str2, string([]rune(str3)[i])) {
number++
}
}
}
if number == len([]rune(str3)) {
return true
}
return false
}
自己写了2个函数才做出来,不知道有没有更简洁的办法。