一、字符统计
1、判读字符串汉字的数量
package main
import (
"fmt"
"unicode"
)
func main() {
//判断字符串中汉字的数量
//难点是判读一个字符是汉字
s1 := "hello上海"
// 1.依次拿到字符串中的字符
var count int
for _, c := range s1 {
//2.判断当前这个字符是不是汉字
if unicode.Is(unicode.Han, c){
count++
}
}
//3.把汉字出现的次数累加得到最终结果
fmt.Println(count)
}
2、how do you do 单词出现的次数
package main
import (
"fmt"
"strings"
)
func main() {
// how do you do 单词出现的次数
s2 := "how do you do"
//1.把字符串按照空格切割得到切片
s3 := strings.Split(s2," ")
//2.遍历切片存储到一个map
m1 := make(map[string]int,10)
for _, w := range s3 {
//2.1如果原来map中不存在w这个key,那么出现次数=1
if _,ok := m1[w] ; !ok {
m1[w] = 1
} else {
m1[w]++
}
//2.2如果map中存在w这个key,那么出现次数+1
}
//3.累加出现次数
for key,value := range m1 {
fmt.Println(key,value)
}
}
二、回文判断
字符串从左往右和从右向左读是一样的,那么就是回文
上海自来水来自海上
package main
import (
"fmt"
)
func main() {
ss := "山西运煤车煤运西山"
// 解题思路:
// 把字符串中的字符拿出来放到一个[]rune中
r := make([]rune ,0,len(ss))
for _, c := range ss {
r = append(r, c)
}
fmt.Println("[]rune:",r)
for i := 0; i < len(r)/2; i++ {
// c r[i] r[len(r)-1-i]
if r[i] != r[len(r)-1-i]{
fmt.Println("不是回文")
return
}
}
fmt.Println("是回文")
}
网友评论