123456789101112131415161718192021222324252627282930313233343536373839 |
- package util
- import (
- "bytes"
- "io/ioutil"
- "golang.org/x/text/encoding/simplifiedchinese"
- "golang.org/x/text/transform"
- )
- type Arr []string
- func (a Arr) Len() int { return len(a) }
- func (a Arr) Less(i, j int) bool {
- tmp1, _ := UTF82GBK(a[i])
- tmp2, _ := UTF82GBK(a[j])
- tmp2Len := len(tmp2)
- for idx, chr := range tmp1 {
- if idx > tmp2Len-1 {
- return false
- }
- if chr != tmp2[idx] {
- return chr < tmp2[idx]
- }
- }
- return true
- }
- func (a Arr) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
- func UTF82GBK(src string) ([]byte, error) {
- GB18030 := simplifiedchinese.All[0]
- return ioutil.ReadAll(transform.NewReader(bytes.NewReader([]byte(src)), GB18030.NewEncoder()))
- }
- // func main() {
- // tmp := Arr{"项目名称", "winner", "省份", "项目编号", "城市", "公告二级", "区县", "项目规模 ", "项目范围", "预算", "中标金额", "采购单位", "采购联系人 ", "中标电话 ", "中标地址 ", "竣工日期 ", "工期时长 ", "工期单位 ", "项目周期(服务周期) ", "评审专家 ", "招标文件购买金额 ", "投标保证金-是否支持保函", "ppp项目", "是否支持保函", "标的物", "多包", "中标候选人"}
- // sort.Sort(tmp)
- // fmt.Println(tmp)
- // }
|