欢迎大家来到IT世界,在知识的湖畔探索吧!
汉字转拼音
观众朋友们,不知道大家在工作中有没有遇见过这种情况,比如这是一个输入框,它里边输的值,后端希望你把输入的值转成拼音发给他,比如这个留要转成对应的拼音,然后去发给后端,他根据拼音去进行搜索。
在之前是使用拼音 js 去完成的,我就非常的好奇,他是怎么去把汉字转成拼音的?难道是用了非常各种牛逼的编码的转换吗?后来我就去研究了,发现它并没有使用编码的转换,它是使用了一个 4 万行代码的字典表去实现的,但是字典表实现起来又非常有意思,所以今天来给大家讲讲这个东西是怎么做的。
首先创建了一个字典,这个字典就是一个空对象,假装模拟一下,有个字典,比如搜索留,举个例子,这个就是它的 key,这是它的 key,在后面就是对应它的拼音,对应留,也就是需要把留去传到函数里边,函数就会把留去转成对应的 16 进制,通过 16 进制去匹配拼音。
也就是字符怎么去转成 16 进制?也就是需要完成这么一步操作才能去匹配到这个东西。怎么知道它是 16 进制?其实学过计算机都知道,0X 开头的一般都是 16 进制。
1. 第一步需要先把它转成 10 进制,并且要转成数字,这个就非常简单了,先给它标注一下类型,这样就会有代码提示,就是调这个方法,再把它删掉就可以了。这个方法就是转成 10 进制,并且是数字。
2. 来看一下值,它就转成 10 进制了,并且是数字,它是什么 10 进制?它是 unico 的,它是 Uni code,它是 Unicode 的十进制,也就是说留所对的 Unicode 的十进制的数字,来看一下,然后就对的是这个,希望的是十六进制,所以就比较简单了。
如果它是数字就好做了,可以调用 toString,转成 16 进制就可以了,再去拼上 0X 就可以了,也就这样子,这样传进去就可以去匹配上了,这样就会返回拼音。其实内部的大概就是去做了这么一件事情,把字转成对应的十六进制,然后去返回拼音,所以这个就是大概的实现原理,也是很有意思。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/83510.html