在编程过程中,有许多情况下我们要根据用户输入的汉字求出拼音缩写:例如:中
国--ZG
下面是一个类,用它可以方便求出来!
using System;namespace CsharpPinYing
{
/// <summary>
/// PinYinClass 的摘要说明。
/// </summary>
public class PinYinClass
{
public PinYinClass()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
private String PinYin(String mystr)
{
String tt;
if ((mystr.ToUpper().CompareTo("A")>=0 &&
mystr.ToUpper().CompareTo("Z")<=0)|| (mystr.ToUpper().CompareTo("0")>=0 &&
mystr.ToUpper().CompareTo("9")<=0))
{
tt=mystr;
return tt;
}
else if (Asc(mystr) < Asc("啊"))
{
tt="1";
return tt;
}
else if (Asc(mystr) >= Asc("啊") && Asc(mystr) < Asc("芭"))
{
tt="a";
return tt;
}
else if (Asc(mystr) >= Asc("芭") && Asc(mystr) < Asc("擦"))
{
tt="b";
return tt;
}
else if (Asc(mystr) >= Asc("擦") && Asc(mystr) < Asc("搭"))
{
tt="c";
return tt;
}
else if (Asc(mystr) >= Asc("搭") && Asc(mystr) < Asc("蛾"))
{
tt="d";
return tt;
}
else if (Asc(mystr) >= Asc("蛾") && Asc(mystr) < Asc("发"))
{
tt="e";
return tt;
}
else if (Asc(mystr) >= Asc("发") && Asc(mystr) < Asc("噶"))
{
tt="f";
return tt;
}
else if (Asc(mystr) >= Asc("噶") && Asc(mystr) < Asc("哈"))
{
tt="g";
return tt;
}
else if (Asc(mystr) >= Asc("哈") && Asc(mystr) < Asc("击"))
{
tt="h";
return tt;
}
else if (Asc(mystr) >= Asc("击") && Asc(mystr) < Asc("喀"))
{
tt="j";
return tt;
}
else if (Asc(mystr) >= Asc("喀") && Asc(mystr) < Asc("垃"))
{
tt="k";
return tt;
}
else if (Asc(mystr) >= Asc("垃") && Asc(mystr) < Asc("妈"))
{
tt="l";
return tt;
}
else if (Asc(mystr) >= Asc("妈") && Asc(mystr) < Asc("拿"))
{
tt="m";
return tt;
}
else if (Asc(mystr) >= Asc("拿") && Asc(mystr) < Asc("哦"))
{
tt="n";
return tt;
}
else if (Asc(mystr) >= Asc("哦") && Asc(mystr) < Asc("啪"))
{
tt="o";
return tt;
}
else if (Asc(mystr) >= Asc("啪") && Asc(mystr) < Asc("期"))
{
tt="p";
return tt;
}
else if (Asc(mystr) >= Asc("期") && Asc(mystr) < Asc("然"))
{
tt="q";
return tt;
}
else if (Asc(mystr) >= Asc("然") && Asc(mystr) < Asc("撒"))
{
tt="r";
return tt;
}
else if (Asc(mystr) >= Asc("撒") && Asc(mystr) < Asc("塌"))
{
tt="s";
return tt;
}
else if (Asc(mystr) >= Asc("塌") && Asc(mystr) < Asc("挖"))
{
tt="t";
return tt;
}
else if (Asc(mystr) >= Asc("挖") && Asc(mystr) < Asc("昔"))
{
tt="w";
return tt;
}
else if (Asc(mystr) >= Asc("昔") && Asc(mystr) < Asc("压"))
{
tt="x";
return tt;
}
else if (Asc(mystr) >= Asc("压") && Asc(mystr) < Asc("匝"))
{
tt="y";
return tt;
}
else if (Asc(mystr) >= Asc("匝") )
{
tt="z";
return tt;
} else
{
tt=mystr;
return tt;
}
}
private int Asc(String Mystr)
{
int inttemp;
byte[] array = new byte[2];
array = System.Text.Encoding.Default.GetBytes(Mystr);
int i1 = (short)(array[0] - '\0');
int i2 = (short)(array[1] - '\0');
inttemp=Convert.ToInt32(i1.ToString() + i2.ToString());
return inttemp;
}
public String TransPinYin(String strInf)
{
String strTemp="";
int iLength=strInf.Length;
for (int i=0;i<=iLength-1;i++)
{
strTemp+=PinYin(strInf.Substring (i,1));
}
return strTemp; } }
}
/////////////////////////////
在程序中调用可用下面代码
private void button1_Click(object sender, System.EventArgs e)
{
PinYinClass py=new PinYinClass();
textBox2.Text=py.TransPinYin(textBox1.Text);
}
//////////
当然现阶段求出的是小写,你也可转成大写!
国--ZG
下面是一个类,用它可以方便求出来!
using System;namespace CsharpPinYing
{
/// <summary>
/// PinYinClass 的摘要说明。
/// </summary>
public class PinYinClass
{
public PinYinClass()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
private String PinYin(String mystr)
{
String tt;
if ((mystr.ToUpper().CompareTo("A")>=0 &&
mystr.ToUpper().CompareTo("Z")<=0)|| (mystr.ToUpper().CompareTo("0")>=0 &&
mystr.ToUpper().CompareTo("9")<=0))
{
tt=mystr;
return tt;
}
else if (Asc(mystr) < Asc("啊"))
{
tt="1";
return tt;
}
else if (Asc(mystr) >= Asc("啊") && Asc(mystr) < Asc("芭"))
{
tt="a";
return tt;
}
else if (Asc(mystr) >= Asc("芭") && Asc(mystr) < Asc("擦"))
{
tt="b";
return tt;
}
else if (Asc(mystr) >= Asc("擦") && Asc(mystr) < Asc("搭"))
{
tt="c";
return tt;
}
else if (Asc(mystr) >= Asc("搭") && Asc(mystr) < Asc("蛾"))
{
tt="d";
return tt;
}
else if (Asc(mystr) >= Asc("蛾") && Asc(mystr) < Asc("发"))
{
tt="e";
return tt;
}
else if (Asc(mystr) >= Asc("发") && Asc(mystr) < Asc("噶"))
{
tt="f";
return tt;
}
else if (Asc(mystr) >= Asc("噶") && Asc(mystr) < Asc("哈"))
{
tt="g";
return tt;
}
else if (Asc(mystr) >= Asc("哈") && Asc(mystr) < Asc("击"))
{
tt="h";
return tt;
}
else if (Asc(mystr) >= Asc("击") && Asc(mystr) < Asc("喀"))
{
tt="j";
return tt;
}
else if (Asc(mystr) >= Asc("喀") && Asc(mystr) < Asc("垃"))
{
tt="k";
return tt;
}
else if (Asc(mystr) >= Asc("垃") && Asc(mystr) < Asc("妈"))
{
tt="l";
return tt;
}
else if (Asc(mystr) >= Asc("妈") && Asc(mystr) < Asc("拿"))
{
tt="m";
return tt;
}
else if (Asc(mystr) >= Asc("拿") && Asc(mystr) < Asc("哦"))
{
tt="n";
return tt;
}
else if (Asc(mystr) >= Asc("哦") && Asc(mystr) < Asc("啪"))
{
tt="o";
return tt;
}
else if (Asc(mystr) >= Asc("啪") && Asc(mystr) < Asc("期"))
{
tt="p";
return tt;
}
else if (Asc(mystr) >= Asc("期") && Asc(mystr) < Asc("然"))
{
tt="q";
return tt;
}
else if (Asc(mystr) >= Asc("然") && Asc(mystr) < Asc("撒"))
{
tt="r";
return tt;
}
else if (Asc(mystr) >= Asc("撒") && Asc(mystr) < Asc("塌"))
{
tt="s";
return tt;
}
else if (Asc(mystr) >= Asc("塌") && Asc(mystr) < Asc("挖"))
{
tt="t";
return tt;
}
else if (Asc(mystr) >= Asc("挖") && Asc(mystr) < Asc("昔"))
{
tt="w";
return tt;
}
else if (Asc(mystr) >= Asc("昔") && Asc(mystr) < Asc("压"))
{
tt="x";
return tt;
}
else if (Asc(mystr) >= Asc("压") && Asc(mystr) < Asc("匝"))
{
tt="y";
return tt;
}
else if (Asc(mystr) >= Asc("匝") )
{
tt="z";
return tt;
} else
{
tt=mystr;
return tt;
}
}
private int Asc(String Mystr)
{
int inttemp;
byte[] array = new byte[2];
array = System.Text.Encoding.Default.GetBytes(Mystr);
int i1 = (short)(array[0] - '\0');
int i2 = (short)(array[1] - '\0');
inttemp=Convert.ToInt32(i1.ToString() + i2.ToString());
return inttemp;
}
public String TransPinYin(String strInf)
{
String strTemp="";
int iLength=strInf.Length;
for (int i=0;i<=iLength-1;i++)
{
strTemp+=PinYin(strInf.Substring (i,1));
}
return strTemp; } }
}
/////////////////////////////
在程序中调用可用下面代码
private void button1_Click(object sender, System.EventArgs e)
{
PinYinClass py=new PinYinClass();
textBox2.Text=py.TransPinYin(textBox1.Text);
}
//////////
当然现阶段求出的是小写,你也可转成大写!
解决方案 »
- 关于c#程序安装部署打包的程序卸载问题
- datagridview中写了click事件代码,但是设计时双击表格,还是默认编辑 cellcontentclick 事件?
- 考试时间倒计时
- 三层结构中,BLL层和DAL层的分工,看看我做的合理不?
- c#做的com怎么动态生成clsid
- 用GDI+画的时候是坐标是以左上角为圆心的,我想以左下角为圆心,y轴向上该怎么实现
- c#读取XML在遇见中文字符的时候报错?
- 如何将一个整形数用二进制来表示?
- 求教:方法的封装问题
- 怎样通过程序删除datadrid中的数据,并提交数据库?
- 如何在windows程序中的DataGrid 中加入复选框?
- 谁能给我一个往数据库中添加数据的程序,前台和后台的!小弟谢了!
{
if (c == 0xB0A1 || c == 0xB0C4)
return "a";
else if (c == 0xB0C5 || c == 0xB2C0)
return "b";
else if ...
}
{
if (s == "")
return null;
string Result = "";
foreach (char c in s)
Result += GetPY(c);
return Result;
}
c == 0xB0A1 || c == 0xB0C4 只是两个条件,
他是要在boa1与boc4之间的。我试了一下,好像不行呀
谢谢你给我的class试通过的。
textBox2.Text =textBox2.Text.ToUpper();
转大写这样就行了,不能有非法字符,要用try将错误扑捉。
结帐了!