当前位置: 首页 > news >正文

河南省示范校建设专题网站中国建设银行账户查询

河南省示范校建设专题网站,中国建设银行账户查询,怎么样让公司网站,苏州企业网站设计本文介绍两个含中文的字符串且针对相同位置字符的比较#xff0c;给出实现代码。 起因 某工程需将接收的字符串和数据库里的指定字段值对比#xff0c;该字符串含中文#xff0c;两者允许个别字符有差异#xff0c;差异数量3及以下的#xff0c;认为相同。 字符串默认用…本文介绍两个含中文的字符串且针对相同位置字符的比较给出实现代码。 起因 某工程需将接收的字符串和数据库里的指定字段值对比该字符串含中文两者允许个别字符有差异差异数量3及以下的认为相同。 字符串默认用 string于是想当然使用循环遍历逐个字符对比之还使用了strings.EqualFold函数测试才发现如果是有中文的话结果不准确。 分析 Golang 语言的中文使用 uf-8存储其长度并不固定。以字符串岑溪450481和芩溪458481为例肉眼可见长度均为8第一个中文和第三个数字不同因此差异数量为2按需求应认为两个字符串相同。但用 string 对比结果是不相同将所有字符打印如下 次数 字符1 字符2 字符1 字符2 [0] å è 229 232 [1] ² 178 138 [2] © 145 169 [3] æ æ 230 230 [4] º º 186 186 [5] ª ª 170 170 [6] 4 4 52 52 [7] 5 5 53 53 [8] 0 8 48 56 [9] 4 4 52 52 [10] 8 8 56 56 [11] 1 1 49 49可以看到上述字符串的长度为12共有4个地方不同因此对比后认为不相同。 而用 rune 类型存储再对比所有字符如下 次数 字符1 字符2 字符1 字符2 [0] 岑 芩 23697 33449 [1] 溪 溪 28330 28330 [2] 4 4 52 52 [3] 5 5 53 53 [4] 0 8 48 56 [5] 4 4 52 52 [6] 8 8 56 56 [7] 1 1 49 49可以看到字符串长度为8和肉眼认为的一致共有2个地方不同因此对比后认为相同。 测试 函数封装如下 func String2Rune(src string) (dest []rune) {for _, item : range src {dest append(dest, item)}return }func checkString(aaa_str, bbb_str string) bool {sameCnt : 0// 用此法对比不准确if len(aaa_str) len(bbb_str) {for i : 0; i len(bbb_str); i {if strings.EqualFold(string(aaa_str[i]), string(bbb_str[i])) {sameCnt}}}if sameCnt len(bbb_str)-3 {return true}return false }func checkRune(aaa_str, bbb_str string) bool {sameCnt : 0// 如有中文用rune类型aa_str : String2Rune(aaa_str)bb_str : String2Rune(bbb_str)if len(aa_str) len(bb_str) {for i : 0; i len(aa_str); i {if aa_str[i] bb_str[i] {sameCnt}}}if sameCnt len(bb_str)-3 {return true}return false }为测试对比设置对比两组数据以人易理解角度看分别相差0、1、2、3、4个字符由实现代码如相差3及以下字符认为相等因此只有最后的一项数据不同。 代码如下 func TestStringNum(t *testing.T) {var a []string []string{岑溪450481, 岑溪450481, 岑溪450481, 岑溪450481, 岑溪450481}var b []string []string{岑溪450481, 芩溪450481, 芩溪458481, 梧州450487, 梧州458487}for i : 0; i len(a); i {fmt.Printf(%v string result: %v %v\n, i, checkString(a[i], b[i]), checkRune(a[i], b[i]))} }测试结果如下 go test -run TestStringNum 0 string result: true true 1 string result: true true 2 string result: false true 3 string result: false true 4 string result: false false PASS小结 如涉及中文字符因为utf8字符长度不固定最好用rune类型比较。 李迟 2023.02.20
http://www.hkea.cn/news/14524826/

相关文章:

  • 延边州网站建设网络舆情监测专业就业前景
  • 汕头网站建设方案维护wordpress手机版
  • qt做网站不囤货的网店怎么开
  • 福田网站建设龙岗网站建设罗湖网站建设wordpress网站很卡
  • 第一ppt网站官网网站需要哪些费用
  • 国家建设工程网官方网站wordpress 文章调用
  • 网站建设的利弊wordpress 短链接插件
  • 东莞做网站建设公司建设行业年度峰会网站
  • 婚介 东莞网站建设wordpress对接steam
  • 成都科技网站建设电话多少钱公司网站建设电话
  • 推荐邯郸网站建设ui设计在线培训机构
  • 网站怎么做才吸引人拼团网站开发
  • 一个ip 做2个网站吗广州办营业执照
  • 无二制造 网站升级建设中最近军事新闻热点
  • 设计软件网站制作网站建设天津最新通告今天最新
  • 中国档案网站建设的特点网站制作app
  • 做网站用微软雅黑侵权吗wordpress怎么修改头像
  • 长安区建设局网站线上推广方式有哪些渠道
  • 建设银行网站电脑版wordpress代码风格主题
  • 如何建立自己的摄影网站美食网站首页设计
  • 做网站被骗五千多做网站还需要兼容ie8吗
  • 网站设计的研究方案军事新闻视频
  • 常见网站建设工具有哪些怎么做网站关键词推广
  • 北京最大的网站建设有限公司自己做h5怎么做
  • 做一普通网站需要多少钱昆山网站设计
  • 高端品牌网站建设内容富平网站建设
  • 公司对网站排名如何做绩效个人网站设计论文题目
  • 网页网站制作维护用织梦做的网站怎么上传虚拟
  • 网站地图定位用什么技术做云南省住房建设厅网站
  • 做网站建设的合同范本服装定制行业的未来和趋势