java生成首字母拼音简码的总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
java⽣成⾸字母拼⾳简码的总结
百度找到了某论坛⾼⼈写的java(具体论坛记不清了),直接⽤来调⽤,再次⾮常感谢,基本上实现了我的需求package MD5;
import java.util.Scanner;
public class ChineseToPinYin {
/**
* 汉字转拼⾳缩写
*
* @param str
* 要转换的汉字字符串
* @return String 拼⾳缩写
*/
public String getPYString(String str) {
String tempStr = "";
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c >= 33 && c <= 126) {// 字母和符号原样保留
tempStr += String.valueOf(c);
} else {// 累加拼⾳声母
tempStr += getPYChar(String.valueOf(c));
}
}
return tempStr;
}
/**
* 取单个字符的拼⾳声母
*
* @param c
* //要转换的单个汉字
* @return String 拼⾳声母
*/
public String getPYChar(String c) {
byte[] array = new byte[2];
array = String.valueOf(c).getBytes();
int i = (short) (array[0] - '\0' + 256) * 256 + ((short) (array[1] - '\0' + 256));
if (i < 0xB0A1)
return "*";
if (i < 0xB0C5)
return "a";
if (i < 0xB2C1)
return "b";
if (i < 0xB4EE)
return "c";
if (i < 0xB6EA)
return "d";
if (i < 0xB7A2)
return "e";
if (i < 0xB8C1)
return "f";
if (i < 0xB9FE)
return "g";
if (i < 0xBBF7)
return "h";
if (i < 0xBFA6)
return "j";
if (i < 0xC0AC)
return "k";
if (i < 0xC2E8)
return "l";
if (i < 0xC4C3)
return "m";
if (i < 0xC5B6)
return "n";
if (i < 0xC5BE)
return "o";
if (i < 0xC6DA)
return "p";
if (i < 0xC8BB)
return "q";
if (i < 0xC8F6)
return "r";
if (i < 0xCBFA)
return "s";
if (i < 0xCDDA)
return "t";
if (i < 0xCEF4)
return "w";
if (i < 0xD1B9)
return "x";
if (i < 0xD4D1)
return "y";
if (i < 0xD7FA)
return "z";
return "*";
}
//以下是测试类
public static void main(String[] args) {
ChineseToPinYin ctpy = new ChineseToPinYin();
Scanner sc = new Scanner(System.in);
System.out.println("请输⼊汉字:");
String str = sc.next();
String py = ctpy.getPYString(str).toUpperCase();//toUpperCase()代表拼⾳码转换成⼤写字母System.out.print("拼⾳:" + py);
}
}
2、以下是我的程序调⽤部分
//拼⾳码加⼊
ChineseToPinYin ctpy = new ChineseToPinYin();
String pym = ctpy.getPYString(kname).toUpperCase();
pst.setString(7,pym);。