当前位置: 首页 > news >正文

常州公司网站建设上海网络seo

常州公司网站建设,上海网络seo,软件网站建设基本流程图,怎样学做网站运营一、PinYin4j库简介 1、PinYin4j简介 Pinyin4j 是一个流行的 Java 库,支持汉字和大多数流行的拼音系统之间的转换(汉语拼音,罗马拼音等)。可自定义拼音输出格式,功能强大。 官网地址:http://pinyin4j.sou…

一、PinYin4j库简介

1、PinYin4j简介

Pinyin4j 是一个流行的 Java 库,支持汉字和大多数流行的拼音系统之间的转换(汉语拼音,罗马拼音等)。可自定义拼音输出格式,功能强大。

官网地址:http://pinyin4j.sourceforge.net/
在线文档:http://pinyin4j.sourceforge.net/pinyin4j-doc/

2、Pinyin4j支持方式:

  • 支持简体中文和繁体中文字符。
  • 支持转换到汉语拼音,通用拼音,威妥玛拼音(威玛拼法),注音符号第二式,耶鲁拼法和国语罗马字母。
  • 支持多音字,即可以获取一个中文字符的多种发音。
  • 支持多种字符串输出格式,比如支持Unicode格式的字符ü和声调符号(阴平ˉ”,阳平"ˊ",上声"ˇ",去声"ˋ")的输出。

3、Pinyin4j支持多种格式:

Pinyin4j 提供了几个实用程序函数,用于将中文字符(简体和繁体)转换为各种中文罗马化表示。

  • HanyuPinyinOutputFormat:这个类定义了如何输出汉语拼音。
  • HanyuPinyinCaseType:为汉语拼音字符串的输出案例提供了几种选项。
  • HanyuPinyinToneType:该类提供了几种输出中文音调的选项。
  • HanyuPinyinVCharType:这个类为’ü’的输出提供了几个选项。

4、单元测试可以操作一下这几个方法:

引入依赖:

        <!--        pinyin4j--><dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j</artifactId><version>2.5.1</version></dependency>
    /*** 测试 pinyin4j库原生方法* @param chinese*/private static void testPinyin4j(String chinese) {char[] arr = "汉语".toCharArray();HanyuPinyinOutputFormat pinyinOutputFormat = new HanyuPinyinOutputFormat();pinyinOutputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);pinyinOutputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);try {System.out.println("toHanYuPinyinString -> " + PinyinHelper.toHanYuPinyinString(chinese, pinyinOutputFormat, "", true));// 取第一个System.out.println("toHanyuPinyinStringArray -> " + PinyinHelper.toHanyuPinyinStringArray(arr[0], pinyinOutputFormat)[0].charAt(0));System.out.println("toHanyuPinyinStringArray -> " + PinyinHelper.toHanyuPinyinStringArray(arr[0])[0].charAt(0));System.out.println("toTongyongPinyinStringArray -> " + PinyinHelper.toTongyongPinyinStringArray(arr[0])[0].charAt(0));System.out.println("toYalePinyinStringArray -> " + PinyinHelper.toYalePinyinStringArray(arr[0])[0].charAt(0));} catch (BadHanyuPinyinOutputFormatCombination e) {e.printStackTrace();}}

二、Pinyin4jUtil工具类

在项目中经常会遇到用户输入汉字后转换为拼音的需求场景,这时候Pinyin4j就派上用场了。

上一篇Java对中文进行排序使用到了它:https://blog.csdn.net/qq_42402854/article/details/127633147

下面创建一个Pinyin4jUtil工具类,来封装几个常用的方法。

import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;/*** 拼音工具类*/ 
public class Pinyin4jUtil {/*** 获取中文串转汉语全拼。(支持多音字,英文字符和特殊字符都丢弃。)** @param str 字符串,为null,返回“”* @return 汉语全拼*/public static String getFullSpell(String str) {String fullPinyin = "";if (str == null) {return fullPinyin;}HanyuPinyinOutputFormat pinyinOutputFormat = new HanyuPinyinOutputFormat();/*** 定义汉语拼音字符串的输出大小写:* LOWERCASE(默认) - 表示汉语拼音作为大写字母输出* UPPERCASE - 表示汉语拼音以小写字母输出*/pinyinOutputFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);/***定义汉语拼音声调的输出格式:汉语有四个声调和一个“无音”音。它们被称为Píng(平坦),Shǎng(上升),Qù(高下降),Rù(下降)和Qing(无音调)。* WITH_TONE_NUMBER(默认) - 表示汉语拼音以声调数字输出。比如:你说呢 - ni3 shuo1ni2* WITHOUT_TONE - 该选项表示不输出音号或音标记的汉语拼音 比如:你说呢 - ni shuoni* WITH_TONE_MARK - 表示输出带有音调标记的汉语拼音 比如:你说呢 - nĭshuōní*/pinyinOutputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);try {/*** 获取一个字符串,其中所有的中文字符都被相应的主(第一)汉语拼音表示所取代。* 参数:*  str - 中文串*  outputFormat - 描述返回的汉语拼音字符串的期望格式*  separate - 每个字的拼音使用什么分割符串显示。注意:分隔符不会出现在非中文字符之后。一般不使用任何分隔符("")时,大家都是紧挨着,看不出来的。*  retain - 是否保留不能转换为拼音的字符。true保留*/fullPinyin = PinyinHelper.toHanYuPinyinString(str, pinyinOutputFormat, " ", false);} catch (BadHanyuPinyinOutputFormatCombination e) {e.printStackTrace();}return fullPinyin;}/*** 获取中文串转汉语全拼。(支持多音字,英文字符和特殊字符都保留。)** @param str 字符串,为null,返回“”* @return 汉语全拼*/public static String getFullSpellAndStr(String str) {String fullPinyin = "";if (str == null) {return fullPinyin;}HanyuPinyinOutputFormat pinyinOutputFormat = new HanyuPinyinOutputFormat();pinyinOutputFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);pinyinOutputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);try {// 保留不能转换为拼音的字符fullPinyin = PinyinHelper.toHanYuPinyinString(str, pinyinOutputFormat, " ", true);} catch (BadHanyuPinyinOutputFormatCombination e) {e.printStackTrace();}return fullPinyin;}/*** 获取中文串转汉语全拼首字母。(支持多音字。英文字符和特殊字符都丢弃。)** @param str 字符串,为null,返回“”* @return 汉语全拼首字母*/public static String getFirstSpell(String str) {StringBuilder firstPinyin = new StringBuilder();if (str == null) {return firstPinyin.toString();}HanyuPinyinOutputFormat pinyinOutputFormat = new HanyuPinyinOutputFormat();pinyinOutputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);pinyinOutputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 获取中文String chinese = getChinese(str);char[] arr = chinese.toCharArray();for (int i = 0; i < arr.length; i++) {try {// 获取单个汉字的全拼,取首字母String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[i], pinyinOutputFormat);if (temp != null) {firstPinyin.append(temp[0].charAt(0));}} catch (BadHanyuPinyinOutputFormatCombination e) {e.printStackTrace();}}return firstPinyin.toString();}/*** 获取中文。(除中文之外,其他字符丢弃。)* @param str*/public static String getChinese(String str) {if (str == null) {return "";}String regex = "[^\u4e00-\u9fa5]"; // 匹配非中文字符return str.replaceAll(regex, ""); // 替换非中文字符为空字符串}public static void main(String[] args) {System.out.println(getFullSpell("你说 重庆话"));System.out.println(getFullSpell("AbCd你说 重庆话"));System.out.println(getFullSpell("你说 重庆话(){}【】.@张三")); // NI SHUO CHONG QING HUA ZHANGSAN  注意:张三没有按分隔符分隔。因为它在非中文之后System.out.println(getFullSpell("AbCd你说 重庆话()zhangsan"));System.out.println("===============");System.out.println(getFullSpellAndStr("你说 重庆话"));System.out.println(getFullSpellAndStr("AbCd你说 重庆话"));System.out.println(getFullSpellAndStr("你说 重庆话(){}【】.@张三")); // NI SHUO  CHONG QING HUA (){}【】.@ZHANGSANSystem.out.println(getFullSpellAndStr("AbCd你说 重庆话()zhangsan"));System.out.println("===============");System.out.println(getFirstSpell("你说 重庆话"));System.out.println(getFirstSpell("你说 重庆话张三"));System.out.println(getFirstSpell("你说 重庆话(){}【】.@张三"));System.out.println("===============");System.out.println(getChinese(""));System.out.println(getChinese("AbCd你说 重庆话(){}【】.@张三zhangsan"));}}

在这里插入图片描述

– 求知若饥,虚心若愚。

http://www.hengruixuexiao.com/news/29473.html

相关文章:

  • 做微信的网站有哪些b站刺激战场视频
  • 中山做网站的大公司seo研究中心培训机构
  • 成都企业网站建设公司合肥百度关键词优化
  • 商城网站建设公司地址搜索网站哪个好
  • 商务科技网站建设百度指数免费添加
  • 怎么找人做动漫视频网站网店代运营正规公司
  • 如何做网站对比网络推广的方法你知道几个?
  • 淄博做网站长沙服务好的网络营销
  • 网站建设企业属于什么类型的公司专业网络推广
  • 昆山网站建设哪家比较好百度一下电脑版
  • 用dw做网站首页站长工具大全
  • 外贸在哪些网站做长沙seo研究中心
  • 如何建设一个苹果网站厦门seo专业培训学校
  • 淘宝u站怎么做网站的爱站seo
  • 青岛城阳网站建设网络营销的分类
  • 沈阳网站建设哪家公司好seo搜索优化专员
  • 枣阳做网站免费长尾词挖掘工具
  • 护肤品网站建设目的网站推广搜索
  • wordpress有什么用处网站 seo
  • 销售员做网站快速网站排名提升
  • 技能培训中心网站建设市场营销一般在哪上班
  • 江门企业网站建设网络营销推广的渠道有哪些
  • 数码b2c网站品牌推广计划书怎么写
  • 网站版权信息模板梅州网络推广
  • 国外设计工作室西安关键词优化平台
  • 杭州的设计网站大全竞价推广代运营公司
  • 石家庄网站建设加q.479185700代运营一家店铺多少钱
  • 网站优化工作室百度推广代运营公司
  • 淘宝电脑版流程优化
  • 教育类网站设计app推广接单平台哪个好