xavier 2008-5-10 09:45
求一级汉字拼音首字母
查GB2312内码表得到每个首字母开头的第一个字。然后利用range就能求出任何一个一级汉字的首字母了。
但是对于二级汉字就不管用了[code]def initial(chr)
arr = %w(啊 芭 擦 搭 蛾 发 噶 哈 击 喀 垃 妈 拿 哦 啪 期 然 撒 塌 挖 昔 压 匝)
alphabet = %w(a b c d e f g h j k l m n o p q r s t w x y z)
22.times do |i|
r = Range.new(arr[i],arr[i+1],true)
return alphabet[i] if r.include?(chr)
end
raise ArgumentError,"不是一级汉字",caller
end[/code]测试:[code]puts initial("韩") #=> h
puts initial("菁") #=> ArgumentError: 不是一级汉字[/code]