java取拼音首字母_java取出汉字字符串的拼音首字母
import java.lang.*;
public class GB2Alpha {
//字母Z使用了两个标签,这里有27个值
//i, u, v都不做声母, 跟随前面的字母
private char[] chartable =
{
'啊', '芭', '擦', '搭', '蛾', '发', '噶', '哈', '哈',
'击', '喀', '垃', '妈', '拿', '哦', '啪', '期', '然',
'撒', '塌', '塌', '塌', '挖', '昔', '压', '匝', '座'
};
private char[] alphatable =
{
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I',
'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'
};
private int[] table = new int[27];
//初始化
{
for (int i = 0; i < 27; ++i) {
table[i] = gbValue(chartable[i]);
}
}
public GB2Alpha() {
}
//主函数,输入字符,得到他的声母,
//英文字母返回对应的大写字母
//其他非简体汉字返回 '0'
public char Char2Alpha(char ch) {
if (ch >= 'a' && ch <= 'z')
return (char) (ch - 'a' + 'A');
if (ch >= 'A' && ch <= 'Z')
return ch;
int gb = gbValue(ch);
if (gb < table[0])
return '0';
int i;
for (i = 0; i < 26; ++i) {
if (match(i, gb))
break;
}
if (i >= 26)
return '0';
else
return alphatable[i];
}
//根据一个包含汉字的字符串返回一个汉字拼音首字母的字符串
public String String2Alpha(String SourceStr) {
String Result = "";
int StrLength = SourceStr.length();
int i;
try {
for (i = 0; i < StrLength; i++) {
Result += Char2Alpha(SourceStr.charAt(i));
}
} catch (Exception e) {
Result = "";
}
return Result;
}
private boolean match(int i, int gb) {
if (gb < table[i])
return false;
int j = i + 1;
//字母Z使用了两个标签
while (j < 26 && (table[j] == table[i]))
++j;
if (j == 26)
return gb <= table[j];
else
return gb < table[j];
}
//取出汉字的编码
private int gbValue(char ch) {
String str = new String();
str += ch;
try {
byte[] bytes = str.getBytes("GB2312");
if (bytes.length < 2)
return 0;
return (bytes[0] << 8 & 0xff00) + (bytes[1] &
0xff);
} catch (Exception e) {
return 0;
}
}
public static void main(String[] args) {
com.mkrx.GB2Alpha obj1 = new com.mkrx.GB2Alpha();
System.out.println(obj1.String2Alpha("测试:中华人民共和国!"));
return;
}
}
分享到:
2008-10-15 16:43
浏览 1862
评论
java取拼音首字母_java取出汉字字符串的拼音首字母相关推荐
- java 正则替换非数字和字母_java - 用空字符串替换所有非字母数字字符
java - 用空字符串替换所有非字母数字字符 我尝试使用这个但没有工作 - return value.replaceAll("/[^A-Za-z0-9 ]/", "&q ...
- 数字排在最前,英文字母其次,汉字则按照拼音进行排序,获取中文首字母
中文名称,按照A-Z方式进行排序. import cn.hutool.extra.pinyin.PinyinUtil; import com.alibaba.nacos.client.utils.St ...
- asp.net 获取汉字字符串的拼音首字母,含多音字
需求:在很多时候数据查询的时候,我们希望输入某个人姓名的拼音首字母进行查询,例如"潘长江",输入"pcj",就能搜索潘长江相关信息. 实现: #region 获 ...
- java获取汉字拼音_Java获取汉字对应的拼音(全拼或首字母)
Java 根据汉语字符串获得对应的拼音字符串或者拼音首字母字符串等操作,需要添加jar包: 代码实现: import java.util.regex.Matcher; import java.util ...
- java全拼_Java获取汉字对应的拼音(全拼或首字母)
java 根据汉语字符串获得对应的拼音字符串或者拼音首字母字符串等操作,需要添加jar包: 引入包 代码实现: import java.util.regex.matcher; import java. ...
- java汉字的拼音首字母_Java 获取汉字的拼音首字母
Java 获取汉字的拼音首字母: pom.xml 引用 pinyin4j 包: com.belerweb pinyin4j 2.5.0 PinyinUtil 类: package com.xxx.co ...
- java获取汉字拼音_Java 根据汉字获取其拼音
pom.xml导入pinyin4j的依赖 com.belerweb pinyin4j 2.5.1 汉字转拼音工具类package com.bizcloud.function; import net.s ...
- java string 查找大写字母_java实现统计字符串中大写字母,小写字母及数字出现次数的方法示例...
本文实例讲述了java实现统计字符串中大写字母,小写字母及数字出现次数的方法.分享给大家供大家参考,具体如下: public class TestSubstring { public static v ...
- java截取固定大小图片_JAVA技巧(长字符串按指定长度截取)
在web开发中,会遇到这样一个问题,想让某个内容全部保持在一定长度范围内,未超出的行全部显示,超长的行只允许显示一定的长度,结尾用省略号代替. 粗想一下,实现这个功能很容易,直接取字符串的长度(用le ...
- php将文字转为拼音,基于PHP如何把汉字转化为拼音
PHP将汉字转换拼音是程序员们经常需要操作的任务之一,别看这一小功能却能发挥很大的作用,以下是正确的汉字转拼音方法,大家可以借鉴一下. 具体代码如下所示: <?php $d=array( arr ...
最新文章
- Cocos2d-X数据、动作、消息的基本操作
- 要求用户提供输入,直到他们给出有效的答复
- node --- Missing write access to 解决
- 嵌入式linux系统中设备驱动程序
- 怎么卸载python 旧版本_Python 如何移除旧的版本特性,如何迎接新的特性?
- Flutter State生命周期 Flutter Widget生命周期 Flutter 应用程序生命周期
- 可替代的C语言开发环境
- JavaScript 数据类型梳理
- ASP.NET MVC 3.0(十二): MVC 3.0 使用自定义的Html控件
- oracle中的函数
- 四大银行(工建农中)大数据进展如何?
- GIS | 坐标系统与地图投影
- Linux终端默认配色方案
- Mac使用系列之软件安装权限
- C++ 题解 (排序) 身高排队
- open gl太阳系简单实现
- 【Linux从无到有】进程的地址空间
- SEO单个网页的最优化操作
- adc0804c语言程序,ADC0804芯片在模数转换电路中的应用研究
- 上交船舶海洋与建筑工程学院考研经验