java首字母判断星期几_Java 获取汉字串首字母并大写和获取汉字的全拼(英文字符不变) 判断字符串是否为字母...
在开发一个姓名检索功能的时候
没有使用之前查找到的前端Layui-select 下拉框实现拼音全拼匹配/首字母模糊搜索
在数据库中增加了首字母和全拼的内容实现输入首字母/拼音来检索人员
所以需要用到人员姓名转换首字母和pinyin
接着便介绍一个工具类 pinyin4j.jar
Pinyin4j是一个功能强悍的汉语拼音工具包,是sourceforge.net上的一个开源项目。
com.belerweb
pinyin4j
2.5.1
可以下载jar包使用,可以引入pom
根据自己需求来使用即可
1.首先在检索的时候因为库中都是小写
所以需要判断传入的是否是字母然后转小写
/**
* 判断是否是字母
* @param str 传入字符串
* @return 是字母返回true,否则返回false
*/
public boolean is_alpha(String str) {
if(str==null) return false;
return str.matches("[a-zA-Z]+");
}
/**
* 判断是否是字母或者数字
* @param str 传入字符串
* @return 是字母返回true,否则返回false
*/
public static boolean isLetterDigit(String str) {
String regex = "^[a-z0-9A-Z]+$";
return str.matches(regex);
}
转小写的方法也很简单
System.out.println("aaaAAABBB".toLowerCase());//转小写
System.out.println("aaaAAABBB".toUpperCase());//转大写
输出结果
2.在插入用户的时候就需要用到咱们引入的pinyin包了
在这里给大家提供一个工具类
import java.util.regex.Matcher;
import java.util.regex.Pattern;
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.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
/**
* 字符串转换为拼音工具类
* @author lzb
*/
public class PinyinUtils {
/**
* 获得汉语拼音首字母
*
* @param chines
* 汉字
* @return
*/
public static String getAlpha(String chines) {
chines = cleanChar(chines);
String pinyinName = "";
char[] nameChar = chines.toCharArray();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
for (int i = 0; i < nameChar.length; i++) {
if (nameChar[i] > 128) {
try {
pinyinName += PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[0].charAt(0);
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else {
pinyinName += nameChar[i];
}
}
return pinyinName;
}
/**
* 将字符串中的中文转化为拼音,英文字符不变
*
* @param inputString
* 汉字
* @return
*/
public static String getPingYin(String inputString) {
inputString = cleanChar(inputString);
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
format.setVCharType(HanyuPinyinVCharType.WITH_V);
String output = "";
if (inputString != null && inputString.length() > 0 && !"null".equals(inputString)) {
char[] input = inputString.trim().toCharArray();
try {
for (int i = 0; i < input.length; i++) {
if (java.lang.Character.toString(input[i]).matches("[\\u4E00-\\u9FA5]+")) {
String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format);
output += temp[0];
} else
output += java.lang.Character.toString(input[i]);
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else {
return "*";
}
return output;
}
/**
* 汉字转换位汉语拼音首字母,英文字符不变
*
* @param chines
* 汉字
* @return 拼音
*/
public static String converterToFirstSpell(String chines) {
chines = cleanChar(chines);
String pinyinName = "";
char[] nameChar = chines.toCharArray();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
for (int i = 0; i < nameChar.length; i++) {
if (nameChar[i] > 128) {
try {
pinyinName += PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[0].charAt(0);
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else {
pinyinName += nameChar[i];
}
}
return pinyinName;
}
/**
* 清理特殊字符以便得到
* @param chines
* @return
*/
public static String cleanChar(String chines) {
chines = chines.replaceAll("[\\p{Punct}\\p{Space}]+", ""); // 正则去掉所有字符操作
// 正则表达式去掉所有中文的特殊符号
String regEx = "[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}<>《》【】‘;:”“’。,、?]";
Pattern pattern = Pattern.compile(regEx);
Matcher matcher = pattern.matcher(chines);
chines = matcher.replaceAll("").trim();
return chines;
}
}
然后直接使用其中的方法进行取首字母/拼音就可以了
有问题欢迎留言!
java首字母判断星期几_Java 获取汉字串首字母并大写和获取汉字的全拼(英文字符不变) 判断字符串是否为字母...相关推荐
- java根据时间判断星期几_java怎么根据日期判断是星期几
java怎么根据日期判断是星期几 发布时间:2020-06-23 09:31:18 来源:亿速云 阅读:112 作者:Leah 这篇文章将为大家详细讲解有关java怎么根据日期判断是星期几,小编觉得挺 ...
- java 由日期计算星期几_java计算日期是星期几
java取得指定日期是星期几:(推荐:java视频教程) 取得指定日期是星期几可以采用下面两种方式取得日期是星期几: 1..使用Calendar类//根据日期取得星期几 public static S ...
- android 查找联系人方法(支持首拼,全拼,英文)
//google源码:public Cursor searchContact(Context ctxt, CharSequence constraint) { Uri uri = Uri.withAp ...
- 字符串的处理:判断字符是否全为中文,判断是否含有中文字符,判断是否全为英文字符,判断是否含有英文字符,取出其中的中文字符,取出其中的英文字符
public class QimoSendMessageTest { @Test public void sendMessageTest22() { String[] strA ...
- vba 全拼_[求助]如何把中文名字转换为拼音(全拼、首字母)
你的位置: 问答吧 -> excel -> 问题详情 [求助]如何把中文名字转换为拼音(全拼.首字母) 现需要把中文名字的拼音做企业邮箱的名字,姓用全拼,名用首字母,比如刘翔为liux,应 ...
- java 拼音转汉字_用Java转化汉字为拼音全拼
/** * @(#)CnToSpell.java * 版权声明 Easydozer 版权所有 违者必究 * * 修订记录: * 1)更改者:Easydozer * 时 间:2004-10-20 * ...
- 每天一练——输入一行字符串,按如下规则加密:如果是英文字母则大写变小写、小写变大写,对非英文字符则保持不变。试写加密程序。
目录 1.思路 2.代码 3.代码实现 1.思路 题目说道如果是英文字母: 大写要变小写 小写要变大写 对非英文字符则保持不变 这里就用到了ASCII码表 大写字母的ASCII码表是:65'A'--9 ...
- java怎么获取中文首字母_Java如何获取中文拼音首字母的方法介绍
下面小编就为大家带来一篇java获取中文拼音首字母的实例.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 如下所示: import net.sourceforge.pin ...
- java 拼音首字母_java获取中文拼音首字母的实例
导读热词 正文 如下所示: import net.sourceforge.pinyin4j.PinyinHelper; public class PinyinHelperUtil { /** * 得到 ...
最新文章
- 网络推广方法教大家提升网站页面收录的技巧!
- 少年郎,你需要封装好的ViewPager工具类
- android 提示文字,EditText 不能显示提示文字Hint
- IE6 下图片少一块
- 某个元素的距离页面的左边距_在机检测圆心距
- python有多少种模块_python如何查看有哪些模块
- 高性能平台设计—美团旅行结算平台实践
- mac brew install nginx遇到的坑
- java非检查性异常有哪些_Java异常处理-检查性异常、非检查性异常、Error
- 解读clickhouse存算分离在华为云实践
- No modules named ‘tensorflow.compat.v2‘
- LINUX下的LVM逻辑卷管理器
- PhpStorm无法获取Post数据 配置
- FPGA:生成占空比可调的PWM波
- 玩苹果为什么要越狱?
- 地理位置数据存储方案——Redis GEO
- 2022Java后端学习主流知识学习系列(建议先收藏)
- 考试系统mysql数据库设计_《在线考试系统数据库设计与实现》.doc
- 论文阅读:Oriented RepPoints for Aerial Object Detection (CVPR 2022)
- 寒冬降临程序猿们如何过冬
热门文章
- AP侧,BP侧如何理解?
- 明风社软件为什么适合学生
- 产品结构设计的主要内容有哪些?
- fusion 谷歌空间_Google Fusion Tables的用例
- 如何把JAR发布到maven中央仓库
- 给定一个大小为 *n* 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 *⌊ n/2 ⌋* 的元素。
- 【腾讯开放平台】Android、IOS实现指定QQ临时会话功能
- detecting text in natural image with connectionist text proposal network
- 中国GMP级细胞因子市场现状及未来发展趋势
- 返利软件哪个佣金高,最高的是哪个