/*** 取得给定汉字串的首字母串,即声母串** 注:只支持GB2312字符集中的汉字*/
/*** Description* Create by zhaoshuxiang* Date 2021/8/10 15:04*/
public class StringUtils {private final static int[] areaCode = { 1601, 1637, 1833, 2078, 2274,2302, 2433, 2594, 2787, 3106, 3212, 3472, 3635, 3722, 3730, 3858,4027, 4086, 4390, 4558, 4684, 4925, 5249, 5590 };private final static String[] letters = { "a", "b", "c", "d", "e","f", "g", "h", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s","t", "w", "x", "y", "z" };/*** 取得给定汉字的首字母,即声母* @param chinese 给定的汉字* @return 给定汉字的声母*/public static String getFirstLetter(String chinese) {if (chinese == null || chinese.trim().length() == 0) {return "";}chinese = conversionStr(chinese, "GB2312", "ISO8859-1");if (chinese.length() > 1) // 判断是不是汉字{int li_SectorCode = (int) chinese.charAt(0); // 汉字区码int li_PositionCode = (int) chinese.charAt(1); // 汉字位码li_SectorCode = li_SectorCode - 160;li_PositionCode = li_PositionCode - 160;int li_SecPosCode = li_SectorCode * 100 + li_PositionCode; // 汉字区位码if (li_SecPosCode > 1600 && li_SecPosCode < 5590) {for (int i = 0; i < 23; i++) {if (li_SecPosCode >= areaCode[i]&& li_SecPosCode < areaCode[i + 1]) {chinese = letters[i];break;}}} else // 非汉字字符,如图形符号或ASCII码{chinese = conversionStr(chinese, "ISO8859-1", "GB2312");chinese = chinese.substring(0, 1);}}return chinese.toUpperCase();}/*** 字符串编码转换* @param str 要转换编码的字符串* @param charsetName 原来的编码* @param toCharsetName 转换后的编码* @return 经过编码转换后的字符串*/private static String conversionStr(String str, String charsetName,String toCharsetName) {try {str = new String(str.getBytes(charsetName), toCharsetName);} catch (UnsupportedEncodingException ex) {System.out.println("字符串编码转换异常:" + ex.getMessage());}return str;}public static void main(String[] args) {String s = getFirstLetter("子非鱼");System.out.println(s); // => "z"}
}

Java获取任意字符串的首字母相关推荐

  1. java获取汉字的拼音首字母_java获取汉字的拼音首字母

    import java.io.UnsupportedEncodingException; /** * 取得给定汉字串的首字母串,即声母串 * Title: ChineseCharToEn * @dat ...

  2. Java获取中文汉字拼音首字母方法二

    效果如下 岐山县 qishanxian QSX Java代码 import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge. ...

  3. Java获取中文汉字拼音首字母方法一(更快速)

    实现效果 文字内容:小苹果 拼音首字母:xpg 工具类 import java.io.UnsupportedEncodingException;/*** @author yang* @version ...

  4. mysql 提取字符串首字母_SQL获取字段字符串中文首字母

    有中文有英文,获取中文首字母信息. SELECT person_name_cn , ELT(INTERVAL(CONV(HEX(LEFT(CONVERT(person_name_cn USING gb ...

  5. JAVA获取中文名字的首字母

    package com.test;public class Test {//简体中文的编码范围从B0A1(45271)一直到F7FE(63846)private static int BEGIN = ...

  6. java中文首字母_好用的获取中文字符串拼音首字母的方法(亲测)

    function getFirstCharter($str){ if(empty($str)){return '';} $fchar=ord($str{0}); if($fchar>=ord(' ...

  7. java获取汉字的拼音首字母_Java获取汉字拼音首字母

    根据网上C#版和JAVA版改的.代码很短,但有些复杂的汉字取不了拼音,如"鑫"等.适用一般不是很复杂的情况. 如要更完整的版本,可以使用这个开源的pinyin4j组件.packag ...

  8. java 首字母小写_java实现将字符串中首字母转换成大写,其它全部转换成小写的方法示例...

    本文实例讲述了java实现将字符串中首字母转换成大写,其它全部转换成小写的方法.分享给大家供大家参考,具体如下: public class TestSubstring { public static ...

  9. java汉字的拼音首字母_Java 获取汉字的拼音首字母

    Java 获取汉字的拼音首字母: pom.xml 引用 pinyin4j 包: com.belerweb pinyin4j 2.5.0 PinyinUtil 类: package com.xxx.co ...

最新文章

  1. Hadoop的存储架构介绍
  2. 各种操作系统ping时的TTL值
  3. Ajax系统学习总结
  4. Java线程:线程交互
  5. 一道GCD LCM题目题解
  6. android gdb 远程调试工具,Android下用gdb远程调试办法
  7. P2490-[SDOI2011]黑白棋【博弈论,dp】
  8. SVN遗漏so文件的解决办法
  9. 想提取嵌入视频文件的字幕流么?一条命令帮你解决|脚本工具系列
  10. Python 图片压缩
  11. Office之下拉字体选项名称为英文
  12. 申请德国农工大学计算机案例,德州农工大学本科案例
  13. com.mongodb.MongoSocketOpenException: Exception opening socket
  14. MySQL~索引设计原则:适合创建索引的11种情况、不适合创建索引的7种情况
  15. 小国王(状压dp经典题)
  16. 青龙面板登陆去除二次验证
  17. 安装mysql数据库和mysql客户端
  18. 离线安装geoc_tjj
  19. 2021安庆市地区高考成绩排名查询,安庆中学排名前十名,2021年安庆中学排名一览表...
  20. 嵌入式工程师如何提高工作效率

热门文章

  1. 【我的方案】酒店wifi营销广告软件认证系统快速设置方案
  2. tarjan算法 (割点和桥)
  3. 租一个5000g的云服务器,空间1500G/流量15000G,这样到底有多大?
  4. 【电路设计】三极管的集电极开路OC输出
  5. 获取本机连接的wifi名
  6. 余承东将兼任华为云与计算BG总裁,原总裁侯金龙任数字能源董事长
  7. 打造个人IP的平台选择和流程
  8. chrome浏览器下载无请求
  9. 如何设置打开PDF是固定页面比例
  10. 碧雪情天服务器地址源如何修改,碧雪情天超级修改器