需求:把拼音用逗号分隔
效果:京东金融app贷款 – jing1,dong1,jin1,rong2,a,p,p,dai4,kuan3
准备:不需要引入任何包,直接就可以运行下面的代码

public class SplitPinyinAlphabet {public static void main(String[] args) {splitPinyinAlphabet("京东金融app","jing1dong1jin1rong2app");}/*** 分割汉字拼音和字母 * @param chineseCharactersOrAlphabet 汉字或字母  如:京东金融app* @param pinyinOrAlphabet 汉字拼音 如:jing1dong1jin1rong2app* @return*/public static void splitPinyinAlphabet(String chineseCharactersOrAlphabet, String pinyinOrAlphabet) {// sb: 存储分割符分割后的汉字拼音  如 sb = jing1,dong1,jin1,rong2,a,p,pStringBuilder sb = new StringBuilder();        // 字符匹配 作用:判断chineseCharactersOrAlphabet是否含有字母  如京东金融app含有字母appString regexChar = ".*[a-zA-Z].*";// 数字匹配 作用:当pinyinOrAlphabet中有数字,跳出循环 如:jing1dong1jin1rong2app循环到2时,停止循环jing1dong1jin1rong2appString regexNumber = ".*[0-9].*";// 标示pinyinOrAlphabet中字母/数字所在索引  如: jing1dong1jin1rong2app jing1中1索引index=4,app中a索引index=19int index = 0;// 遍历chineseCharactersOrAlphabet  作用:区分汉字和字母for (int i = 0; i < chineseCharactersOrAlphabet.length(); i++) {String letter = String.valueOf(chineseCharactersOrAlphabet.charAt(i));boolean isLetter = letter.matches(regexChar);//chineseCharactersOrAlphabet字母处理: sb拼接字符串,并记录下个字母的索引  如 jing1dong1jin1rong2app中的app,当循环到字母a,记录字母a后面的字母p的索引,即index++if(isLetter) {sb.append(letter).append(",");//System.out.println("字母" + letter + ",索引 = " + index);index++;continue;}else {//chineseCharactersOrAlphabet汉字处理:此时循环汉字拼音pinyinOrAlphabet,从index开始for (int j = index; j < pinyinOrAlphabet.length(); j++) {String letterOrNumber = String.valueOf(pinyinOrAlphabet.charAt(j));boolean isNumber = letterOrNumber.matches(regexNumber);//当循环pinyinOrAlphabet等于数字时,此时sb拼接字符串,并记录下个字母的索引,然后跳出循环if(isNumber) {sb.append(letterOrNumber).append(",");index = j + 1;break;}else {sb.append(pinyinOrAlphabet.charAt(j));}}}}/** 当最后一个字符是逗号分隔符,那么去掉最后一个分割符。当不是,不做任何处理* 场景:假如用户输入的汉字是:我爱你andy,指定读音:wo3,ai4,ni3,a,n,d(没有输全)* 此时splitPinyinOrAlphabet=wo3,ai4,ni3,a,n,d* 如果去掉最后一个字符变成了wo3,ai4,ni3,a,n,*/String splitPinyinOrAlphabet = sb.toString();String subSplitPinyinOrAlphabet = splitPinyinOrAlphabet.substring(splitPinyinOrAlphabet.length()-1);if(StringUtils.equals(subSplitPinyinOrAlphabet, ",")) {String newSplitPinyinOrAlphabet = splitPinyinOrAlphabet.substring(0, splitPinyinOrAlphabet.length() - 1);System.out.println(newSplitPinyinOrAlphabet);}System.out.println(splitPinyinOrAlphabet);}
}

运行效果:

分割符分割汉字拼音和字母相关推荐

  1. java获取汉字拼音首字母A

    public class GetChinessFirstSpell{ /// <summary> /// 汉字拼音首字母列表 本列表包含了20901个汉字,用于配合 GetChineseS ...

  2. 【C#】获取汉字拼音首字母和全拼

    文章目录 利用CJK统一表意符号获取首字母 获取首字母和全拼 另附sql server解决方案 来源 java的同学可以了解下pinyin4j,js可以了解ChinesePY.js 获取拼音的意义多在 ...

  3. python怎么识别拼音-python获取一组汉字拼音首字母的方法

    本文实例讲述了python获取一组汉字拼音首字母的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python # -*- coding: utf-8 -*- def m ...

  4. python汉字拼音查询_python获取一组汉字拼音首字母的方法

    本文实例讲述了python获取一组汉字拼音首字母的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python # -*- coding: utf-8 -*- def m ...

  5. (转载)C#提取汉字拼音首字母的方法

    今天突然要用到提取汉字拼音首字母的功能,去网上找了找,发现没有几个好用的,决定自己写一个,效果还不错,发出来大家一起研究下,分享给大家!直接入主题: 1.首先对编码进行定义 #region 编码定义 ...

  6. mysql查询汉字拼音首字母的方法_MySQL查询汉字拼音首字母的方法

    下面为您介绍了MySQL查询汉字拼音首字母的方法,该方法极具实用价值,如果您之前遇到过类似方面的问题,不妨一看. MySQL查询汉字拼音首字母方法如下: 1.建立拼音首字母资料表 Sql代码: DRO ...

  7. QT下获取汉字拼音首字母

    ///汉字拼音首字母列表 本列表,包含了20902个汉字的拼音的第一个字母 ///本表收录的汉字字符的Unicode编码范围为19968至40869, XDesigner 整理 QString str ...

  8. C#按汉字拼音首字母排序

    可参考以下博客. C# 使用微软的Visual Studio International Pack 类库提取汉字拼音首字母 - 影子科技 - 博客园 http://www.cnblogs.com/ya ...

  9. php获取汉字的首字母,php获取汉字拼音首字母的方法

    现实中我们经常看到这样的说明,排名不分先后,按姓名首字母进行排序.这是中国人大多数使用的排序方法.那么在php程序中该如何操作呢? 下面就分享一下在php程序中获取汉字拼音的首字母的方法,在网上搜到的 ...

最新文章

  1. IOS Xcode提交代码到github上
  2. 双粗虚线中间一条实线_马路中间有一条黄色虚线和一条实线,能超车吗?
  3. MySQL5.7.x 安装 Linux7环境
  4. HTML5应用程序网站视差模板下载
  5. oracle关联表查询使用索引_SQL技巧:查询某个表关联的所有存储过程
  6. markdown 编辑器_推荐一款公众号 Markdown 编辑器
  7. mysql 全库查询关键字_数据库查询语句关键字总结
  8. excel 比对多列数据
  9. 学习笔记:新技术与新趋势(演讲者:王煜全-海银资本合伙人)
  10. [转]将106键盘布局(日式键盘布局)改为101键盘布局(美式键盘布局)(
  11. [No000019A]【波浪理论精典教学课程】
  12. 高德地图多marker聚合API
  13. 银行中的等额本息,及其与等额本金的对比
  14. 计算机期末考试ppt操作,计算机期末考试重点PPT.ppt
  15. rocket-dashboard安装部署
  16. 理解卷积的空间不变性和通道特异性
  17. c语言e怎么表示_如何一个月学完c语言
  18. VCam 虚拟摄像头 V3.1.0 下载 - 天空软件站 - 聊天工具 - 联络聊天
  19. c语言转化音乐格式转换器安卓版,音乐格式转换器安卓版
  20. 读书笔记 - 《人民的名义》

热门文章

  1. 从事资本运作的人应该具备的操守
  2. 【PIC32MZ】开发环境的搭建
  3. 鼎湖山html css实验,鼎湖山游记
  4. 《jdk8u源码分析》6.1.GetJREPath
  5. O2OA开源免费办公平台:在PAAS平台上部署O2OA开发平台
  6. Oracle入门--水表项目(单表查询,链接查询,左右外连接,子查询,分页查询)(3)
  7. lij IDEA项目包分层结构显示设置
  8. 淘宝界面实现以及登录注册界面
  9. Win7下基于Anaconda安装TensorFlow
  10. 服务器TIME_WAIT和CLOSE_WAIT区别及解决方案