拼音首字母转汉字
网上找了找,只有汉字转拼音首字母的程序,却没有拼音首字母转汉字的程序.是不是没办法实现? --------------------编程问答-------------------- 输入法... --------------------编程问答-------------------- 拼音首字转汉字????
这个有啥用,难道是输入法??? --------------------编程问答--------------------
/// <summary>
/// 把汉字转换成拼音第一个字母
/// </summary>
/// <param name="ChineseStr">中文字符串 </param>
/// <returns>返回首拼音字母 </returns>
public static string ChineseCap(string ChineseStr)
{
string Capstr = "";
byte[] ZW = new byte[2];
long ChineseStr_int;
string CharStr, ChinaStr = "";
for (int i = 0; i <= ChineseStr.Length - 1; i++)
{
CharStr = ChineseStr.Substring(i, 1).ToString();
ZW = System.Text.Encoding.Default.GetBytes(CharStr);
// 得到汉字符的字节数组
if (ZW.Length == 2)
{
int i1 = (short)(ZW[0]);
int i2 = (short)(ZW[1]);
ChineseStr_int = i1 * 256 + i2;
#region 参数
//table of the constant list
// 'A'; //45217..45252
// 'B'; //45253..45760
// 'C'; //45761..46317
// 'D'; //46318..46825
// 'E'; //46826..47009
// 'F'; //47010..47296
// 'G'; //47297..47613
// 'H'; //47614..48118
// 'J'; //48119..49061
// 'K'; //49062..49323
// 'L'; //49324..49895
// 'M'; //49896..50370
// 'N'; //50371..50613
// 'O'; //50614..50621
// 'P'; //50622..50905
// 'Q'; //50906..51386
// 'R'; //51387..51445
// 'S'; //51446..52217
// 'T'; //52218..52697
//没有U,V
// 'W'; //52698..52979
// 'X'; //52980..53640
// 'Y'; //53689..54480
// 'Z'; //54481..55289
#endregion
#region 判断
if ((ChineseStr_int >= 45217) && (ChineseStr_int <= 45252))
{
ChinaStr = "A";
}
else if ((ChineseStr_int >= 45253) && (ChineseStr_int <= 45760))
{
ChinaStr = "B";
}
else if ((ChineseStr_int >= 45761) && (ChineseStr_int <= 46317))
{
ChinaStr = "C";
}
else if ((ChineseStr_int >= 46318) && (ChineseStr_int <= 46825))
{
ChinaStr = "D";
}
else if ((ChineseStr_int >= 46826) && (ChineseStr_int <= 47009))
{
ChinaStr = "E";
}
else if ((ChineseStr_int >= 47010) && (ChineseStr_int <= 47296))
{
ChinaStr = "F";
}
else if ((ChineseStr_int >= 47297) && (ChineseStr_int <= 47613))
{
ChinaStr = "G";
}
else if ((ChineseStr_int >= 47614) && (ChineseStr_int <= 48118))
{
ChinaStr = "H";
}
else if ((ChineseStr_int >= 48119) && (ChineseStr_int <= 49061))
{
ChinaStr = "J";
}
else if ((ChineseStr_int >= 49062) && (ChineseStr_int <= 49323))
{
ChinaStr = "K";
}
else if ((ChineseStr_int >= 49324) && (ChineseStr_int <= 49895))
{
ChinaStr = "L";
}
else if ((ChineseStr_int >= 49896) && (ChineseStr_int <= 50370))
{
ChinaStr = "M";
}
else if ((ChineseStr_int >= 50371) && (ChineseStr_int <= 50613))
{
ChinaStr = "N";
}
else if ((ChineseStr_int >= 50614) && (ChineseStr_int <= 50621))
{
ChinaStr = "O";
}
else if ((ChineseStr_int >= 50622) && (ChineseStr_int <= 50905))
{
ChinaStr = "P";
}
else if ((ChineseStr_int >= 50906) && (ChineseStr_int <= 51386))
{
ChinaStr = "Q";
}
else if ((ChineseStr_int >= 51387) && (ChineseStr_int <= 51445))
{
ChinaStr = "R";
}
else if ((ChineseStr_int >= 51446) && (ChineseStr_int <= 52217))
{
ChinaStr = "S";
}
else if ((ChineseStr_int >= 52218) && (ChineseStr_int <= 52697))
{
ChinaStr = "T";
}
else if ((ChineseStr_int >= 52698) && (ChineseStr_int <= 52979))
{
ChinaStr = "W";
}
else if ((ChineseStr_int >= 52980) && (ChineseStr_int <= 53640))
{
ChinaStr = "X";
}
else if ((ChineseStr_int >= 53689) && (ChineseStr_int <= 54480))
{
ChinaStr = "Y";
}
else if ((ChineseStr_int >= 54481) && (ChineseStr_int <= 55289))
{
ChinaStr = "Z";
}
#endregion
}
else
{
Capstr = ChineseStr;
break;
}
Capstr = Capstr + ChinaStr;
}
return Capstr;
}
http://topic.csdn.net/u/20090625/17/33994538-ceea-4db4-93e9-06ac1aa4f8d5.html --------------------编程问答-------------------- 应该是没办法实现 --------------------编程问答-------------------- 拼音首字母只有26个,就转26个汉字? --------------------编程问答-------------------- mark --------------------编程问答-------------------- 学过语文的人都应该知道这是不可能的....
即使是汉字转拼音,在多音字的干扰下也是错漏百出 --------------------编程问答-------------------- 不是做输入法。
原意是想,用户在文本框中输入"BJ",页面列出数据库中首字母为"BJ"的所有城市,例如"北京"等等。
--------------------编程问答-------------------- 如果没办法用程序转,我只好把数据库里再加一列"城市首字母"了。几千个城市,改起来.... --------------------编程问答--------------------
几千个城市...你知道汉字有多少个吗?
你这种需求很常见,只有建字典一条路可走,把拼音首字母当作什么都不是的符号来处理... --------------------编程问答-------------------- 那是汉字转拼音首字母的功能呀
就是判断 输入的BJ 是否和 数据库中 城市名称汉字的首字母 相等,这个可以实现的,微软也有这个库,上面的的那个例子也可以实现,可能效率没有楼上建字典高 --------------------编程问答-------------------- 多音字比较麻烦,不过声母不同的多音字应该不多,看你怎么考虑了,可以多音字的也显示出来,虽然可能是错误的城市读音 --------------------编程问答-------------------- 肯定要将城市表中加一列存储汉字的简拼,每次输入简拼时对此列进行模糊查找。
不加字段也可以,但每次输入拼音时都要将城市转成简拼,再进行模糊查找,这样更不合理。 --------------------编程问答-------------------- 基本同意:难以实现 --------------------编程问答-------------------- 建库是唯一的办法 --------------------编程问答--------------------
前面不是有由汉字得到拼音的程序吗!修改一下应该比较方便得到汉字的首字母 --------------------编程问答-------------------- 先看下 --------------------编程问答-------------------- 没有什么是不可能。。。。一起研究。。。 --------------------编程问答-------------------- up --------------------编程问答-------------------- 收藏 --------------------编程问答-------------------- 有点难啊 --------------------编程问答--------------------
同意~~~ --------------------编程问答-------------------- 建个库,在检索 --------------------编程问答-------------------- 看大家都很赞成建库,能否说的具体点? --------------------编程问答-------------------- 支持。。。 --------------------编程问答-------------------- 写的太好了 --------------------编程问答-------------------- 写的真好 佩服 --------------------编程问答-------------------- 这种情况几乎是不可能的,一个字母不知道会对应多少个汉字,如果像区位码那样一一对应还好办 --------------------编程问答-------------------- 这个简单啊.你先在数据库中添加一列助记码,然后把城市的首字母填到助记码列上(用上面提到的方法或是微软的一个组件),下次查找的时候用以助记码为关键字查找不就行了吗?
把城市的首字母填到助记码列上:这个也可以写个小程序,循环一下,不就行了? --------------------编程问答-------------------- 发挥思维的话可以想象用 字母组合完成汉字 但是这个难度太高了 --------------------编程问答-------------------- 研究研究吧应该是建数据库 --------------------编程问答-------------------- 顶下 --------------------编程问答-------------------- 去 天空收一下嘛 --------------------编程问答-------------------- --------------------编程问答-------------------- mark --------------------编程问答-------------------- 只能建库 --------------------编程问答-------------------- 对实际用途表示疑问! --------------------编程问答--------------------
肯定是可以实现的,我们在网上查找火车票的时候,
可以输入拼音的首字母,然后就会列出城市的拼音首字母相同的城市名称
我想查过火车票的人都应该会遇到过吧
--------------------编程问答-------------------- http://blog.csdn.net/bohut/archive/2004/10/29/157911.aspx
delphi的代码,那个API应该是win32的,没怎么看懂 --------------------编程问答-------------------- 好 --------------------编程问答-------------------- http://bbs.pep.com.cn/thread-389635-1-8.html
这个也可以参考下,vb的 --------------------编程问答-------------------- 为什么好多我下不下来呢!积分都用光了5555555555555555555555555555555 --------------------编程问答-------------------- --------------------编程问答-------------------- 有点意思,不过不知道这个在什么情况下使用 --------------------编程问答-------------------- 实现你的功能是可以的!
我认为最好的方法是在你的城市例表上加一个存储拼音的例(当然如果要支持五笔就加个五笔例)
后在向数据库存储数据是就根据一个函数把简码存入哪个例(当然由于多营字的问题和每个地区读字的习惯建议做一个教正窗口),在需要读数时就使用sql的例模糊查找功能
例: select 城市名 from 表名 where 拼音例 like '%你数据的简码%'
这个语句是oracle的格式支持模糊查找! --------------------编程问答-------------------- hao --------------------编程问答-------------------- up --------------------编程问答-------------------- mark --------------------编程问答-------------------- 要么就在入库的时候,有一个拼音简码 --------------------编程问答-------------------- csdn貌似有·你搜索一下~ --------------------编程问答-------------------- 有没有什么可行的解决方案? --------------------编程问答-------------------- 有没有什么可行的解决方案? --------------------编程问答-------------------- 2楼那段代码很好啊。 --------------------编程问答-------------------- 要建库。 --------------------编程问答-------------------- 用数据库的话会不会慢 --------------------编程问答-------------------- 用输入法不行么? --------------------编程问答-------------------- 基本上是不可能的吧
只能建库来解决 --------------------编程问答-------------------- 不知道呢
LZ是想搞过输入法吗?
--------------------编程问答-------------------- 好 --------------------编程问答-------------------- google的联想搜索是不是有这个功能,百度的貌似也有 --------------------编程问答-------------------- 这个功能之前见到过,当时想应该是另外加了一列来存储城市简称。在进行查询的时候可以进行模糊匹配。
楼上其它人提到的字典实际上也是这个原理。
你可以看下luncene.也可以用luncene.net建索引。 --------------------编程问答-------------------- 等你结贴我来看一下 --------------------编程问答-------------------- 如果数量少的话可以用穷举法 --------------------编程问答-------------------- --------------------编程问答-------------------- nan --------------------编程问答-------------------- 3楼的方法,如果传入的是汉字+\\ 好像判断就有误哦! 比如传入: 周杰伦是SB\\ --------------------编程问答-------------------- 顶个 研究中 --------------------编程问答-------------------- --------------------编程问答-------------------- UP,不可能没法实现。
输入法,不是可以实现首字母转汉字吗?
补充:.NET技术 , C#