在网上找到的返回汉字首写字母的函数,精简实用 ,至少我没找到什么问题.
private string GetGbkX(string str)
{
if(str.CompareTo(" 吖")<0) return str;
if(str.CompareTo("八")<0) return "A";
if(str.CompareTo(" 嚓")<0) return "B";
if(str.CompareTo("咑")<0) return "C";
if(str.CompareTo(" 妸")<0) return "D";
if(str.CompareTo("发")<0) return "E";
if(str.CompareTo(" 旮")<0) return "F";
if(str.CompareTo("铪")<0) return "G";
if(str.CompareTo(" 讥")<0) return "H";
if(str.CompareTo("咔")<0) return "J";
if(str.CompareTo(" 垃")<0) return "K";
if(str.CompareTo("嘸")<0) return "L";
if(str.CompareTo(" 拏")<0) return "M";
if(str.CompareTo("噢")<0) return "N";
if(str.CompareTo(" 妑")<0) return "O";
if(str.CompareTo("七")<0) return "P";
if(str.CompareTo(" 亽")<0) return "Q";
if(str.CompareTo("仨")<0) return "R";
if(str.CompareTo(" 他")<0) return "S";
if(str.CompareTo("哇")<0) return "T";
if(str.CompareTo(" 夕")<0) return "W";
if(str.CompareTo("丫")<0) return "X";
if(str.CompareTo(" 帀")<0) return "Y";
if(str.CompareTo("咗")<0) return "Z";
return str;
}
其实我一直向往能写出这样"经典"的函数,也是我一直努力的目标!对.NET每个函数的理解到本质,运用灵活,对语言环境的机制巧妙运用,这个函数完全体现出来!
对于字符串CompareTo这个属性,只是看了下MSDN帮助.也没有特别的深入研究.所以直觉推理,他的比较是ASCII码的大小比较?!在网上查了下关于汉字ASCII码的文章,关于汉字的ASCII码是负数,汉字和拼音联系着.回到这个函数,他上面所引用的汉字,正好是26拼音字母对应 ASCII码的最小的汉字.举个简单例子,"八"是B字母开头ASCII码最小的汉字,比他小的自然都是A开头的了,原理似乎就是这样!当然这里有几个问题,1.那就是"咗"应该是Z开头字母ASCII最大的汉字????2."吖"是不是所有汉字的第一个字????
关于返回汉字首写字母的函数浅谈?
最新推荐文章于 2021-02-21 01:15:21 发布
本文分享了一个用于获取汉字首写字母的精简实用函数。该函数通过比较特定汉字来确定其拼音首字母,适用于.NET环境。文章还探讨了字符串CompareTo属性的应用,并解释了函数背后的原理。
2778

被折叠的 条评论
为什么被折叠?



