将传入的任意中文字符转换为拼音

vba 中文批量转拼音并且首字母大写拼接起来 3、复制下面到模块中。 阅读详情

将传入的任意中文字符转换为拼音

(1)多音字只取其中一个读音。

(2)生僻字如果没有拼音,使用unknown替代。

package com.amgotech;

public class ChineseSpelling
{
   private static int[] pyvalue = new int[] { -20319, -20317, -20304, -20295, -20292, -20283, -20265, -20257, -20242, -20230, -20051, -20036, -20032, -20026, -20002, -19990, -19986, -19982, -19976, -19805, -19784, -19775, -19774, -19763, -19756, -19751, -19746, -19741, -19739, -19728, -19725, -19715, -19540, -19531, -19525, -19515, -19500, -19484, -19479, -19467, -19289, -19288, -19281, -19275, -19270, -19263, -19261, -19249, -19243, -19242, -19238, -19235, -19227, -19224, -19218, -19212, -19038, -19023, -19018, -19006, -19003, -18996, -18977, -18961, -18952, -18783, -18774, -18773, -18763, -18756, -18741, -18735, -18731, -18722, -18710, -18697, -18696, -18526, -18518, -18501, -18490, -18478, -18463, -18448, -18447, -18446, -18239, -18237, -18231, -18220, -18211, -18201, -18184, -18183, -18181, -18012, -17997, -17988, -17970, -17964, -17961, -17950, -17947, -17931, -17928, -17922, -17759, -17752, -17733, -17730, -17721, -17703, -17701, -17697, -17692, -17683, -17676, -17496, -17487, -17482, -17468, -17454, -17433, -17427, -17417, -17202, -17185, -16983, -16970, -16942, -16915, -16733, -16708, -16706, -16689, -16664, -16657, -16647, -16474, -16470, -16465, -16459, -16452, -16448, -16433, -16429, -16427, -16423, -16419, -16412, -16407, -16403, -16401, -16393, -16220, -16216, -16212, -16205, -16202, -16187, -16180, -16171, -16169, -16158, -16155, -15959, -15958, -15944, -15933, -15920, -15915, -15903, -15889, -15878, -15707, -15701, -15681, -15667, -15661, -15659, -15652, -15640, -15631, -15625, -15454, -15448, -15436, -15435, -15419, -15416, -15408, -15394, -15385, -15377, -15375, -15369, -15363, -15362, -15183, -15180, -15165, -15158, -15153, -15150, -15149, -15144, -15143, -15141, -15140, -15139, -15128, -15121, -15119, -15117, -15110, -15109, -14941, -14937, -14933, -14930, -14929, -14928, -14926, -14922, -14921, -14914, -14908, -14902, -14894, -14889, -14882, -14873, -14871, -14857, -14678, -14674, -14670, -14668, -14663, -14654, -14645, -14630, -14594, -14429, -14407, -14399, -14384, -14379, -14368, -14355, -14353, -14345, -14170, -14159, -14151, -14149, -14145, -14140, -14137, -14135, -14125, -14123, -14122, -14112, -14109, -14099, -14097, -14094, -14092, -14090, -14087, -14083, -13917, -13914, -13910, -13907, -13906, -13905, -13896, -13894, -13878, -13870, -13859, -13847, -13831, -13658, -13611, -13601, -13406, -13404, -13400, -13398, -13395, -13391, -13387, -13383, -13367, -13359, -13356, -13343, -13340, -13329, -13326, -13318, -13147, -13138, -13120, -13107, -13096, -13095, -13091, -13076, -13068, -13063, -13060, -12888, -12875, -12871, -12860, -12858, -12852, -12849, -12838, -12831, -12829, -12812, -12802, -12607, -12597, -12594, -12585, -12556, -12359, -12346, -12320, -12300, -12120, -12099, -12089, -12074, -12067, -12058, -12039, -11867, -11861, -11847, -11831, -11798, -11781, -11604, -11589, -11536, -11358, -11340, -11339, -11324, -11303, -11097, -11077, -11067, -11055, -11052, -11045, -11041, -11038, -11024, -11020, -11019, -11018, -11014, -10838, -10832, -10815, -10800, -10790, -10780, -10764, -10587, -10544, -10533, -10519, -10331, -10329, -10328, -10322, -10315, -10309, -10307, -10296, -10281, -10274, -10270, -10262, -10260, -10256, -10254 };
   private static String[] pystr = new String[] { "a", "ai", "an", "ang", "ao", "ba", "bai", "ban", "bang", "bao", "bei", "ben", "beng", "bi", "bian", "biao", "bie", "bin", "bing", "bo", "bu", "ca", "cai", "can", "cang", "cao", "ce", "ceng", "cha", "chai", "chan", "chang", "chao", "che", "chen", "cheng", "chi", "chong", "chou", "chu", "chuai", "chuan", "chuang", "chui", "chun", "chuo", "ci", "cong", "cou", "cu", "cuan", "cui", "cun", "cuo", "da", "dai", "dan", "dang", "dao", "de", "deng", "di", "dian", "diao", "die", "ding", "diu", "dong", "dou", "du", "duan", "dui", "dun", "duo", "e", "en", "er", "fa", "fan", "fang", "fei", "fen", "feng", "fo", "fou", "fu", "ga", "gai", "gan", "gang", "gao", "ge", "gei", "gen", "geng", "gong", "gou", "gu", "gua", "guai", "guan", "guang", "gui", "gun", "guo", "ha", "hai", "han", "hang", "hao", "he", "hei", "hen", "heng", "hong", "hou", "hu", "hua", "huai", "huan", "huang", "hui", "hun", "huo", "ji", "jia", "jian", "jiang", "jiao", "jie", "jin", "jing", "jiong", "jiu", "ju", "juan", "jue", "jun", "ka", "kai", "kan", "kang", "kao", "ke", "ken", "keng", "kong", "kou", "ku", "kua", "kuai", "kuan", "kuang", "kui", "kun", "kuo", "la", "lai", "lan", "lang", "lao", "le", "lei", "leng", "li", "lia", "lian", "liang", "liao", "lie", "lin", "ling", "liu", "long", "lou", "lu", "lv", "luan", "lue", "lun", "luo", "ma", "mai", "man", "mang", "mao", "me", "mei", "men", "meng", "mi", "mian", "miao", "mie", "min", "ming", "miu", "mo", "mou", "mu", "na", "nai", "nan", "nang", "nao", "ne", "nei", "nen", "neng", "ni", "nian", "niang", "niao", "nie", "nin", "ning", "niu", "nong", "nu", "nv", "nuan", "nue", "nuo", "o", "ou", "pa", "pai", "pan", "pang", "pao", "pei", "pen", "peng", "pi", "pian", "piao", "pie", "pin", "ping", "po", "pu", "qi", "qia", "qian", "qiang", "qiao", "qie", "qin", "qing", "qiong", "qiu", "qu", "quan", "que", "qun", "ran", "rang", "rao", "re", "ren", "reng", "ri", "rong", "rou", "ru", "ruan", "rui", "run", "ruo", "sa", "sai", "san", "sang", "sao", "se", "sen", "seng", "sha", "shai", "shan", "shang", "shao", "she", "shen", "sheng", "shi", "shou", "shu", "shua", "shuai", "shuan", "shuang", "shui", "shun", "shuo", "si", "song", "sou", "su", "suan", "sui", "sun", "suo", "ta", "tai", "tan", "tang", "tao", "te", "teng", "ti", "tian", "tiao", "tie", "ting", "tong", "tou", "tu", "tuan", "tui", "tun", "tuo", "wa", "wai", "wan", "wang", "wei", "wen", "weng", "wo", "wu", "xi", "xia", "xian", "xiang", "xiao", "xie", "xin", "xing", "xiong", "xiu", "xu", "xuan", "xue", "xun", "ya", "yan", "yang", "yao", "ye", "yi", "yin", "ying", "yo", "yong", "you", "yu", "yuan", "yue", "yun", "za", "zai", "zan", "zang", "zao", "ze", "zei", "zen", "zeng", "zha", "zhai", "zhan", "zhang", "zhao", "zhe", "zhen", "zheng", "zhi", "zhong", "zhou", "zhu", "zhua", "zhuai", "zhuan", "zhuang", "zhui", "zhun", "zhuo", "zi", "zong", "zou", "zu", "zuan", "zui", "zun", "zuo" };       

   private StringBuilder buffer;
   private String resource;
   private static ChineseSpelling chineseSpelling = new ChineseSpelling();       
   public static ChineseSpelling getInstance()
   {
    return chineseSpelling;       
   }       
        
   public String getResource()
   {
    return resource;       
   }       
        
   public void setResource(String resource)
   {
    this.resource = resource;       
   }       
        
   private int getChsAscii(String chs) {       
   int asc = 0;       
    try { 
     byte[] bytes = chs.getBytes("gb2312");
     if (bytes == null || bytes.length > 2 || bytes.length <= 0) { // 错误     
     // log       
          
     throw new RuntimeException("illegal resource string");
      }       
     if (bytes.length == 1)
     { // 英文字符
      asc = bytes[0];       
     }       
     if (bytes.length == 2)
     { // 中文字符       
      int hightByte = 256 + bytes[0];       
      int lowByte = 256 + bytes[1];
      asc = (256 * hightByte + lowByte) - 256 * 256;       
     }       
     } catch (Exception e)
     {
      System.out.println("ERROR:ChineseSpelling.class-getChsAscii(String chs)" + e);
     }
    return asc;       
    }       
        
   public String convert(String str) {
    String result = null;       
    int ascii = getChsAscii(str);       
    // System.out.println(ascii);       
    if (ascii > 0 && ascii < 160)
    {
     result = String.valueOf((char) ascii);       
    } else
    {       
     for (int i = (pyvalue.length - 1); i >= 0; i--)
     {       
      if (pyvalue[i] <= ascii)
      {
       result = pystr[i];       
       break;       
      }       
     }       
    }
    return result;       
   }       
        
   public String getSelling(String chs)
   {       
       String key, value;       
       buffer = new StringBuilder();       
   for (int i = 0; i < chs.length(); i++)
   {
    key = chs.substring(i, i + 1);       
   if (key.getBytes().length == 2)
   {
    value = (String) convert(key);
    if (value == null)
     {
     value = "unknown";       
     }       
    } else
    {
     value = key;       
    }       
        
    buffer.append(value);       
    }       
    return buffer.toString();       
    }       
        
   public String getSpelling()
   {
    return this.getSelling(this.getResource());       
   }       
        
   public static void main(String[] args) { 
         ChineseSpelling finder = ChineseSpelling.getInstance();
         finder.setResource("中文字符:江苏,南京");
         System.out.println(finder.getSpelling());
    }       
}   

运行结果:

zhongwenzifu:jiangsu,nanjing

如果输入的结果为全角符号的:  则系统无法识别,则显示为

zhongwenzifuunknownjiangsu,nanjing

 

原文来自:http://blog.youkuaiyun.com/windone0109/article/details/5356436#comments

项目实战——基于Java8+JavaFX+多线程+文件IO+SQLite数据库实现的本地文件快速搜索引擎详细设计实现 对于许多不爱整理电脑的小伙伴来说(自然我也是其中之一),在一堆堆的文件夹和文件里找到自己需要的文件是非常令人头疼的。而且当文件夹越来越多之后,总是会遗忘掉自己将文件塞在了哪个犄角旮旯,于是乎,本地文件搜索引擎就是非常关键的了!那么,为什么不用系统自带的搜索引擎呢?速度太慢!!!当搜索文件夹内容过多时,很久也无法完成。于是乎,在网络上寻找,找到了Everything这样的一个小工具,觉得十分好用,能快速通过关键字索引找到文件信息;不过用了一段时间之后,还是觉得差点意思。... 阅读详情

相关推荐

复杂字符串标识符转换实战:从Unicode处理到多语言实现

在软件开发中,字符串标识符的规范化处理是确保系统兼容性与数据一致性的基础技术。其核心原理在于通过字符编码转换、模式匹配与替换,将包含特殊符号、空格及多语言字符的原始输入,转换为符合特定场景约束的标准格式。这一过程的技术价值在于消除因非法字符引发的URL解析错误、数据库查询失败及安全漏洞,保障数据在文件系统、网络传输与存储中的可靠交互。常见的应用场景包括生成URL友好的Slug、定义编程语言变量名、规范数据库字段命名以及处理命令行参数。针对包含中文、特殊符号的混合字符串,如“弹壳·k9999|Why so s

weixin_30384217的博客 318

ABAP提取汉字

【代码】ABAP提取汉字。

matinal 當冬夜漸暖 。公众号:matinal 382

AutoCompleteTextView深度解析:从原理到高可用实战

AutoCompleteTextView是Android中典型的双模态输入组件,兼具文本输入与下拉选择能力,其核心在于Filter过滤机制、焦点状态管理及InputConnection交互链路。不同于普通EditText,它依赖严格的事件拦截顺序和线程安全的数据更新模式,尤其在中文匹配、OEM系统兼容、软键盘协同等场景下极易出现‘列表不显示’‘点击无响应’等隐蔽问题。掌握getFilter重写、setThreshold合理设置、Application Context内存规避及防抖提交等关键技术,是构建稳定搜

weixin_34268843的博客 349

计算文本大小,将汉字转拼音

// 计算文本大小     NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:17], NSFontAttributeName, nil];          CGRect rect = [str boundingRectWithSize:CGSizeMake(300

wln930218的专栏 465

Excel LAMBDA函数精讲:从基础语法到递归与数组实战

在Excel公式处理中,LAMBDA函数正成为一种重要的自定义函数工具,它允许用户将复杂逻辑封装为可复用的命名函数。其核心原理是参数化输入与表达式计算,配合Excel 365的动态数组函数如MAP、REDUCE、SCAN,能够实现批量数据的高效处理。递归机制则进一步拓展了层级拆解场景,如阶乘和斐波那契计算。在实际工程中,LAMBDA函数可应用于业绩拆分、文本提取、多条件查找等高频需求,有效避免长公式的重复维护问题。掌握LAMBDA函数能显著提升公式的可读性和可维护性,是Excel高阶用户进阶的关键技能。本文

429

逆向工程中的编码与加密算法识别与实战分析

在计算机安全与软件分析领域,编码与加密是数据处理的两大基础技术。编码作为信息的表现形式,如Base64、十六进制等,旨在实现数据的标准化传输与存储;而加密作为信息的保护手段,如AES、RSA等算法,通过密钥机制确保数据的机密性。理解其原理对软件逆向、漏洞挖掘及安全审计至关重要。在逆向工程中,快速识别Base64、AES等常见算法特征,并分析其模式与密钥,是解密通信协议、分析恶意代码的核心技能。本文聚焦于逆向实战,系统讲解如何通过特征识别、动态调试及工具链应用,高效处理编码转换与加密算法分析,帮助开发者掌握从

weixin_33714884的博客 363

java茌首字母_汉字获取拼音首字母(1)

/// /// 汉字拼音首字母列表 本列表包含了20901个汉字,用于配合 GetChineseSpell 函数使用,本表收录的字符的Unicode编码范围为19968至40869[南京 yyf]/// private static string [] strChineseCharList ={"A阿啊锕嗄厑哎哀唉埃挨溾锿鎄啀捱皑凒溰嘊敳皚癌毐昹嗳矮蔼躷噯藹譪霭靄艾伌爱砹硋隘嗌塧嫒愛碍暧瑷僾壒嬡懓...

weixin_29938067的博客 3万+

SAP常用简码T-CODE

SAP常用的transaction codes,命令行简码

Java中文字符转换拼音

将传入的任意中文字符转换为拼音(1)多音字只取其中一个读音。(2)生僻字如果没有拼音,使用unknown替代。 package com.amgotech;public class ChineseSpelling {   private static int[] pyvalue = new int[] { -20319, -20317, -20304, -20295, -2029

相信自己能行,那就一定能行 5099

汉字转拼音 源代码

汉字转拼音 源代码

Pi0 项目复现及项目问题解决方案(全网抢先发布~)

Pi0 项目复现及项目问题解决方案(全网抢先发布~)

m0_68167062的博客 2260

java中文字符转换,Java中文字符转换拼音

将传入的任意中文字符转换为拼音(1)多音字只取其中一个读音。(2)生僻字如果没有拼音,使用unknown替代。package com.amgotech;public class ChineseSpelling{private static int[] pyvalue = new int[] { -20319, -20317, -20304, -20295, -20292, -20283, -202...

weixin_35701696的博客 245

逆变器专题(9)-基于dq坐标系的逆变器解耦控制建模与实时仿真分析

本文深入探讨了基于dq坐标系的逆变器解耦控制建模与实时仿真分析。通过生动的比喻和详细的数学推导,阐述了如何通过坐标变换和前馈补偿实现d轴与q轴的独立控制,从而提升系统动态性能与稳定性。文章还介绍了在MATLAB/Simulink中搭建仿真模型、分析动态响应与稳定性的方法,并展望了硬件在环(HIL)实时仿真的高级验证手段,为新能源并网与电机驱动领域的工程师提供了宝贵的实践指南。

gold的博客 547

2分钟上手、3小时学会无代码软件开发---语法基础

注释 可视化地添加注释。注释会被浏览器运行时忽略,所以它对程序的结果没有影响。使用注释为其他开发者和自己提供了一个备注,用于逻辑、功能、开发思路说明。使用方式为:在任意开发位置直接拖放一个注释元件即可: 启用/生成、不启用/不生成 对开发的元件对象,可以预定义运行时启用或不启...

chengyouli8918的博客 237

3D Slicer隐藏技巧:这样玩转医学影像分割与3D建模(含DICOM处理)

本文深入探讨3D Slicer在医学影像分割与3D建模中的高级应用技巧,包括多模态分割策略、三维可视化优化及DICOM数据处理。通过专业配置和Python脚本示例,帮助医疗AI开发者和影像科医师提升工作效率,实现精准的医学图像分析与建模。

weixin_28559803的博客 432

AUTOSAR BswM配置实战:手把手教你用Vector Davinci Configurator搭建第一个模式管理规则

本文详细介绍了如何使用Vector Davinci Configurator工具配置AUTOSAR BswM模块,实现车身控制ECU的模式管理规则。通过实战案例,从环境准备、核心概念梳理到具体配置步骤,包括ModeRequestPort、ModeCondition、Logical Expression和Rules的构建,帮助工程师快速掌握BswM配置技巧,提升汽车电子软件开发效率。

weixin_28678831的博客 351

href=javascript 显示开发中_2分钟上手、3小时学会无代码软件开发---语法基础

注释可视化地添加注释。注释会被浏览器运行时忽略,所以它对程序的结果没有影响。使用注释为其他开发者和自己提供了一个备注,用于逻辑、功能、开发思路说明。使用方式为:在任意开发位置直接拖放一个注释元件即可:启用/生成、不启用/不生成对开发的元件对象,可以预定义运行时启用或不启用。不启用/不生成时,显示元件不会显示,其中的功能逻辑不会执行运行预定义的不启用/不生成的对象,在逻辑中可以用Create生成对象...

weixin_32771631的博客 97

AFSim 2.9中文手册实战指南:从安装到高级功能详解(附B站视频链接)

本文详细介绍了AFSim 2.9的安装配置、基础功能操作和高级功能应用,帮助用户快速掌握这款强大的仿真平台。从系统要求检查到多体动力学仿真,再到性能优化技巧,全面解析AFSim 2.9的使用方法,适合初学者和进阶用户参考。

weixin_30892037的博客 564

阶段性检测实战项目----文件搜索引擎

仿照 everthing 设计文件搜索引擎,相对于 everthing 支持跨平台的使用,这是因为Java是跨平台的。

weixin_53999801的博客 599

红日-VulnStack靶场-ATT&CK(二):从Weblogic漏洞到域控渗透实战

本文详细解析了红日安全团队VulnStack靶场中从Weblogic漏洞到域控渗透的完整攻击链。通过实战演示Weblogic反序列化漏洞利用、Cobalt Strike持久化控制、域内信息收集及PsExec横向移动等关键技术,复现了企业内网渗透的典型场景,并提供了防御建议。

tgb3456789的博客 934

【功能安全】【AutoSAR】程序流监控机制

目录 一、程序流执行的常见故障 二、程序流的监控机制 1、监控功能的实现 2、三种监督机制 a、生命监测机制 b、截止时间监测机制 c、逻辑程序流监测机制 一、程序流执行的常见故障 与程序流相关的故障,在ISO26262中第六章附录D中定义如下: — 执行阻塞; — 死锁; — 活锁; — 执行时间的不正确分配; — 软件要素间的不正确同步。 二、程序流的监控机制 1、监控功能的实现 AutoSAR中对程序流的监控功能的实现主要有“看门狗”栈(Watchdog Stack).

专注汽车软件开发、AutoSAR、车载以太网、SOA、EE架构。 4517

java三种排序算法,java 几种排序算法

java 几种排序算法//排序和查找是数据结构与算法设计的重要内容/*排序主要包括1.插入排序:又包括直接插入排序、二分法插入排序、表插入排序、Shell排序2.选择排序:包括直接选择排序、堆排序3.交换排序:冒泡排序、快速排序4.分配排序:主要有基数排序5.归并排序:主要有内排序、外排序注:以下程序均在本人电脑上通过完整的数据测试*////////////////////////////////...

weixin_39902875的博客 141

在windows系统上使用codex出现应用程序无法正常启动(0xc0000022)的解决方案

本文主要介绍了在windows系统上使用codex出现应用程序无法正常启动(0xc0000022)的解决方案,希望能对使用codex的同学们有所帮助。 文章目录 1. 问题描述 2. 原因分析 3. 解决方案

weixin_43178406的博客 10万+

C语言字符串数组排序:从qsort比较函数到内存模型详解

在C语言程序设计中,数组排序是数据处理的基础操作,其核心在于理解数据的内存布局与比较逻辑。字符串数组排序尤为典型,它涉及指针与数组的本质区别:二维字符数组在内存中连续存储,排序需交换整块数据;而字符指针数组仅交换指针,效率更高,也更灵活。这一原理直接决定了排序策略的选择与实现。标准库函数qsort是实现通用排序的关键,其灵魂在于用户自定义的比较函数。对于字符串排序,必须正确处理指针的间接访问,例如对char*数组应使用strcmp(*(const char**)a, *(const char**)b)。这一

weixin_34101784的博客 611

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

sap 提取字符串中汉字

DATA: alpha_num(120) TYPE c. alpha_num = ' abcdefghijklopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,./;''[]\-=`{}|_+~!@#$%^&*()'. IF input CA alpha_num.   output = '不仅仅全是汉字'. ELSE.   output =

少年休闲海 2289

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: 打印机连接技术概述(LPR&RAW&AppleTalk)
下一篇: java代码将汉字转换成拼音
侃子
博客等级 码龄16年 27粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值