返回字符串的拼音首字母,支持GBK及UTF-8编码
本帖最后由 vectra 于 2017-9-22 15:29 编辑17年以来的新贴都不见了,有留档的我再发下恢复一下。原贴发表于 2017-1-2 19:48
已知问题:
1、不能处理多音字
(defun pingyin (str / asc lst rt)
(setq lst (vl-string->list str))
(while lst
(setq asc (+ (* (car lst) 256) (cadr lst) -65536)
lst (cddr lst)
)
(setq rt (cons
(cond
((<= -20319 asc -20284) "A")
((<= -20283 asc -19776) "B")
((<= -19775 asc -19219) "C")
((<= -19218 asc -18711) "D")
((<= -18710 asc -18527) "E")
((<= -18526 asc -18240) "F")
((<= -18239 asc -17923) "G")
((<= -17922 asc -17418) "H")
((<= -17922 asc -17418) "I")
((<= -17417 asc -16475) "J")
((<= -16474 asc -16213) "K")
((<= -16212 asc -15641) "L")
((<= -15640 asc -15166) "M")
((<= -15165 asc -14923) "N")
((<= -14922 asc -14915) "O")
((<= -14914 asc -14631) "P")
((<= -14630 asc -14150) "Q")
((<= -14149 asc -14091) "R")
((<= -14090 asc -13319) "S")
((<= -13318 asc -12839) "T")
((<= -12838 asc -12557) "W")
((<= -12556 asc -11848) "X")
((<= -11847 asc -11056) "Y")
((<= -11055 asc -10247) "Z")
(t nil)
)
rt
)
)
)
(reverse rt)
)
演示:
_$ (pingyin "二次开发")
("E" "C" "K" "F")
str也分享出来才能用吧 13648893846 发表于 2017-9-22 16:01
str也分享出来才能用吧
str是函数的参数 接受纯中文字符 不错 支持一下 虽然还有几行代码看不懂但是还是学习了很多东东 不错 支持一下
页:
[1]