java获取汉字首字母

Java中根据中文汉字获取首字母 方法对单个字符提取首字母然后拼接结果,最后注释代码可以选择结果是否保留空格及转换字母大小写功能。在Java中想要实现根据中文汉字获取首字母的功能有两种途径,分别是使用第三方库。方法就是根据字符获取首字母,其中主要是使用Pinyin4j中的。类实现,这里大概讲述关于第三方库Pinyin4j的使用方式;工具类,结合Pinyyin4j提供的方法来编写具体功能实现; 阅读详情


public class ChineseFCUtil {
    // 简体中文的编码范围从B0A1(45217)一直到F7FE(63486)
    private static int BEGIN = 45217;
    private static int END = 63486;

    // 按照声母表示,这个表是在GB2312中的出现的第一个汉字,也就是说“啊”是代表首字母a的第一个汉字。
    // i, u, v都不做声母, 自定规则跟随前面的字母
    private static char[] chartable = { '啊', '芭', '擦', '搭', '蛾', '发', '噶', '哈',
            '哈', '击', '喀', '垃', '妈', '拿', '哦', '啪', '期', '然', '撒', '塌', '塌',
            '塌', '挖', '昔', '压', '匝', };

    // 二十六个字母区间对应二十七个端点
    // GB2312码汉字区间十进制表示
    private static int[] table = new int[27];

    // 对应首字母区间表
    private static char[] initialtable = { 'a', 'b', 'c', 'd', 'e', 'f', 'g',
            'h', 'h', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
            't', 't', 'w', 'x', 'y', 'z', };

    // 初始化
    static {
        for (int i = 0; i < 26; i++) {
            table[i] = gbValue(chartable[i]);// 得到GB2312码的首字母区间端点表,十进制。
        }
        table[26] = END;// 区间表结尾
    }

    // ------------------------public方法区------------------------
   
    public static String cn2py(String SourceStr) {
        String Result = "";
        int StrLength = SourceStr.length();
        int i;
        try {
            for (i = 0; i < StrLength; i++) {
                Result += Char2Initial(SourceStr.charAt(i));
            }
        } catch (Exception e) {
            Result = "";
        }
        return Result;
    }

    // ------------------------private方法区------------------------
   
    private static char Char2Initial(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 < BEGIN) || (gb > END))// 在码表区间之前,直接返回
            return ch;

        int i;
        for (i = 0; i < 26; i++) {// 判断匹配码表区间,匹配到就break,判断区间形如“[,)”
                if ((gb >= table[i]) && (gb < table[i+1]))
                    break;
        }
      
        if (gb==END) {//补上GB2312区间最右端
            i=25;
        }
        return initialtable[i]; // 在码表区间中,返回首字母
    }

   
    private static int gbValue(char ch) {// 将一个汉字(GB2312)转换为十进制表示。
        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) throws Exception {
       System.out.println(cn2py("咸阳项目").toUpperCase());
   }
}

 

                                              联
Java获取汉字首字母 若有其他需求,请自行修改代码。 阅读详情

相关推荐

蓝桥杯嵌入式(基础教程)STM32G431RBT6——创建工程以及点灯

首先选择正确的芯片类型:STM32G431RBT6工程的创建主要有配置时钟以及烧录的方式。在配置好之后需要对时钟进行配置,由于蓝桥杯的外部晶振是24MHz因此需要对时钟树进行相应的配置。第一步先点击时钟配置之后就可以对时钟进行相应的配置了最后一步,需要对工程起一个名字,并且要选择KEIL做为其相应的软件之后再需要再生成代码那里进行相应的控制。当然这样根据生成的工程不能直接使用会有一个报错,所以需要添加一个启动文件。这个启动文件可以在官方的LCD文件夹下复制到自己的工程中。

m0_74051113的博客 1093

java获取汉字的首字母

java获取汉字的首字母的实现方式可能会有很多种,但是本文讲的是采用pinyin4j去获取,上代码。

weixin_44740485的博客 6959

Windows系统下AutoDock 4.2.6安装避坑指南(附MGLTools配置技巧)

本文详细介绍了在Windows系统下安装和配置AutoDock 4.2.6的完整流程,特别针对分子对接研究中常见的软件安装问题提供了解决方案。从环境准备、分步安装到常见报错处理,涵盖MGLTools配置技巧、工作目录设置和环境变量优化,帮助科研人员快速搭建稳定的分子对接平台。

weixin_29234239的博客 313

java中获取汉字的首字母

【代码】java中获取汉字的首字母。

weixin_61503139的博客 2966

模块 stm32_基于STM32设计的RFID读卡模块电路方案(原理图+程序)

采用stm32F030F4,用PWM产生125KHZ的方波,经过推挽电路进行功率放大,高频电流进入LC串联谐振电路,345uH和4.7NF的谐振频率正好是125KHZ,这时电容两端电压会到十几伏。当有卡接近线圈时,线圈两端会有曼彻斯特编码的调幅波。通过二极管以及电容的检波和滤波,产生的小信号送入LM358进行放大和整形,变成单片机可以读取的曼彻斯特编码信号。• IO 分配(采用内部晶...

weixin_28686771的博客 3815

Ubuntu22.04实战:基于VLLM高效部署Qwen3系列模型并构建Dify智能体

本文详细介绍了在Ubuntu22.04系统上使用VLLM高效部署Qwen3系列模型并集成Dify平台的实战指南。从环境配置、Conda管理到VLLM优化部署,再到Dify智能体构建,提供了全面的技术方案和性能调优建议,帮助开发者快速实现AI模型的高效部署与应用。

weixin_28323057的博客 161

java 获取中文拼音首字母(缩写)

直接上代码: import java.io.UnsupportedEncodingException; /** * * @author yuki_ho * */ public class ChineseCharToEnUtil { private final static int[] li_SecPosValue = { 1601, 1637, 1833, 2078, 227

_yuki_ 2万+

Matlab双目相机标定

1 概述 现在有许多双目相机在出厂时就已经标定好了,用户拿到手后可以直接使用,例如Intel Realsense系列。但是有些相机出厂的时候并没有完成标定工作,因而这个时候就需要我们自己来标定。由于笔者曾改装过一个双目相机,最远可以测至50m,因此有一定的心得体会想给大家分享一下。本文主要介绍双目相机标定的整个过程,以及导出标定数据的方法。 相机标定主要分为手动标定和自动标定,手动标定比较繁琐,这里主要介绍基于matlab工具箱的自动标定方式来对双目相机进行标定。具体的相关标定细节也可以参照这篇博客:m

weixin_46133643的博客 2万+

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

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

第245万个博主 1502

我的python学习之路

Python 是一门功能强大且易于学习的编程语言,广泛应用于数据分析、人工智能、Web 开发、自动化等领域。以下是一个 Python 学习路径的总结,帮助你系统地掌握 Python 编程。

数据知道的博客 3万+

SAP Business Technology Platform 支持的技术栈

SAP Business Technology Platform(简称 BTP)是 SAP 提供的一个综合技术平台,旨在帮助企业实现业务转型和创新。BTP 融合了数据库管理、应用开发、集成、分析和智能技术,为企业提供从基础架构到端到端应用的全面服务。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1567

JAVA获取汉字首字母拼音

JAVA获取汉字首字母拼音jar导入工具类 jar导入 <dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.0</version> </dependency> 工具类 package mavendemo.mavendemo; import net.sourceforge.p

艺艺小同学的博客 812

SDA 还是 SDI:SAP HANA 数据虚拟化与数据集成的取舍、组合与实战

结论先放在前面:SDA 面向数据虚拟化与联邦查询,强调不落地、不复制、按需实时访问;SDI 面向数据集成与复制,强调抽取、转换、装载与近实时增量同步。两者共享 Remote Source 与 Adapter 的理念,但侧重点与运行时组件明显不同。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 585

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

实现效果 文字内容:中华人民共和国 拼音首字母:zhrmghg 工具类 import java.io.UnsupportedEncodingException; /** * @author yang * @version 1.15, 2017年6月27日 下午1:19:47 * */ public final class ChineseCharToEn { private...

第245万个博主 3720

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

java通讯录获取汉字首字母

(img-7hKlhf5P-1713177126992)](img-APkYFPhL-1713177126992)]分享一些系统的面试题,大家可以拿去刷一刷,准备面试涨薪。//输出结果并且把获取到的字母转换成大写。@param chinese 汉字串。@param chinese 汉字串。获取汉字串拼音首字母,英文字符不变。@return 汉语拼音首字母。获取汉字串拼音,英文字符不变。@return 汉语拼音。

2301_82242844的博客 1148

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

java 汉字字典,获取汉字拼音,拼音首字母,五笔,笔画,笔画顺序

环境:eclipsse, jdk1.6, 没有使用第三方的包,都是JDK有的。 注意,项目源文件我都使用的是UTF-8的编码格式,如果不是,代码里面的汉字注释会显示乱码。 设置UTF-8:windows->Preferences->General->Workspace 页面上Text file encoding,选择Other UTF-8 项目结构: 1.字典文件 d

Dake 1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

java 汉字 首字母_java汉字获取首字母

1 packageorg.jeecg.modules.system.util;23 importnet.sourceforge.pinyin4j.PinyinHelper;4 importnet.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;5 importnet.sourceforge.pinyin4j.format.HanyuPinyi...

weixin_33213911的博客 439

Java中获取GBK编码汉字的拼音首字母

Java中获取GBK编码汉字的拼音首字母   网上关于Java中获取汉字的拼音首字母的方法很多,但大多基于GB2312的汉字所属编码位置判断方法,现有一种基于GBK编码计算拼音首字母的方法,参考http://blog.youkuaiyun.com/z3h/article/details/6302890 笔者出的源码是读取文件默认编码格式,默认是GBK,如果文件默认格式不是GBK将报错,现在代码读取的格...

weistar103的专栏 2万+

java 获取汉字拼音和首字母

public class HanZiToPinYin {   private static String[] name = { "zuo", "zun", "zui", "zuan", "zu", "zou",                             "zong", "zi", "zhuo", "zhun", "zhui", "zhuang", "zhuan",

wgrzhuaq的专栏 1948

java怎样获取汉字的首字母_[JAVA]获得汉字的拼音首字母

--sunfruit提供了获得汉字的拼音首字母的方法JDK版本 无版本限制功能 实现了获得一个汉字的拼音首字母功能,为汉字排序提供了方便欢迎大家提意见,交流代码如下:/*** Title:获得汉字的拼音首字母* Description: GB 2312-80 把收录的汉字分成两级。第一级汉字是常用汉字,计 3755 个,* 置于 16~55 区,按汉语拼音字母/笔形顺序排列;第二级汉字...

weixin_39645308的博客 156

Java 获取汉字首字母

本文属于http://java.chinaitlab.com/base/803353.html原创!!!public class PinYin2Abbreviation { // 简体中文的编码范围从B0A1(45217)一直到F7FE(63486) private static int BEGIN = 45217; private static int END = 63486; //

Pig 2万+

Java根据汉字获取汉字的全拼和首字母

import java.io.UnsupportedEncodingException; public class ChineseCharToEnUtil extends XwCardApplicationTests { private final static int[] li_SecPosValue = { 1601, 1637, 1833, 2078, 2274, 2302, 2433, 2594, 2787, 3106, 3212, 3472, 3635, 3722

Any流年的博客 396

java获取文字的首字母_java 获取一段汉字的首字母

publicclassGB2Alpha{//字母Z使用了两个标签,这里有27个值//i,u,v都不做声母,跟随前面的字母privatechar[]chartable={'啊','芭','擦','搭','蛾','发','噶','哈','哈','击','喀','垃','妈','拿','哦','啪','期','然','撒','塌','塌','塌',...

weixin_42376793的博客 345
上一篇: js&nbsp;修改地址栏中的参数
下一篇: oracle&nbsp;查询不区分大小写
jarry.liu
博客等级 码龄16年 36粉丝 304原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jarry.liu

如果对您有帮助,鼓励下博主吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值