package chinese_to_pinyin

import (
	"github.com/mozillazg/go-pinyin"
	"strings"
	"unicode"
)

func ChineseToPinyin(str string) string {
	p := pinyin.NewArgs()
	p.Style = pinyin.Normal
	finalStr := strings.Builder{}
	for _, v := range str {
		//判断是不是汉字
		if isChineseCharacter(v) {
			result := pinyin.Pinyin(strings.ToLower(string(v)), p)
			r := strings.Builder{}
			for _, v := range result {
				r.WriteString(v[0])
			}
			finalStr.WriteString(r.String())
		} else {
			finalStr.WriteString(string(v))
		}
	}
	return finalStr.String()
}
func isChineseCharacter(c rune) bool {
	return unicode.Is(unicode.Scripts["Han"], c)
}