关闭

Java代码判断字符串是否为汉字

213人阅读 评论(0) 收藏 举报
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 PinYinUtil {
//莱比锡-莱比东
//中文(老王) 转大写的汉语拼音LAOWANG
//英文(LaoWang) 转大写LAOWANG
//火星文( ⊙ o ⊙ 啊!) 转###A#
//数字(123) 转 ###

//如何判断?
//利用正则表达式
//中文[\u4E00-\U9FFF]
//英文[a-zA-Z]
//其余的一律转成 #

public static String getPinYin(String username){

try {
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
format.setCaseType(HanyuPinyinCaseType.UPPERCASE);
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

StringBuilder sb = new StringBuilder();

for(int i=0;i<username.length();i++){
String str = username.substring(i, i+1);

if(str.matches("[\u4E00-\u9FFF]")){
//说明str是中文,转拼音
char c = str.charAt(0);
String[] py = PinyinHelper.toHanyuPinyinStringArray(c,format);
sb.append(py[0]);
}else if(str.matches("[a-zA-Z]")){
//说明str是英文,转大写
sb.append(str.toUpperCase());
}else{
//说明是火星文或数字,转#
sb.append("#");
}
}

return sb.toString();
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
throw new RuntimeException("不正确的拼音格式");
}
}
}
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Java判断字符串中是否包含中文

Java判断一个字符串是否有中文是利用Unicode编码来判断,因为中文的编码区间为:0x4e00--0x9fbb, 不过通用区间来判断中文也不非常精确,因为有些中文的标点符号利用区间判断会得到错...
  • carl_china
  • carl_china
  • 2015-09-01 19:20
  • 4033

Java判断输入的String是否为中文方法总结

今天遇到的问题是如何判断输入的字符串是汉字,现将学习到的方法转载、记录总结如下: Java用的是Unicode 编码char 型变量的范围是0-65535 无符号的值,可以表示 65536个字符,基...
  • u011240877
  • u011240877
  • 2015-11-18 15:37
  • 6676

检测字符串中是否含有中文

检测字符串中是否含有中文: 思路: 我们都知道,英文字符串和中文字符串最大的区别在于每一个英文字符占用一个字节,而每一个中文字符占用两个字节。 知道这一点,就为我们检测字符串中是否有中文提供了实...
  • ExceptionalBoy
  • ExceptionalBoy
  • 2017-02-09 08:14
  • 716

Java判断字符串是否是乱码(亲测可用)

经过几天的努力,终于给爱酷学习网(http://www.icoolxue.com)加上了搜索引擎的支持,现在你可以搜索自己喜欢的视频教程啦。 PS:爱酷学习网是一个全面的视频教程网站,有各类计算机类...
  • xiaobing_122613
  • xiaobing_122613
  • 2017-06-08 09:05
  • 1324

C++判断字符串中是否有中文

分析一下: 问题:用C++判断字符串是否为中文 简化:判断字符串是否为中文 这个问题本身就有问题.你们谁能说他有本事判断给定的字符串是否为中文? 首先  中文是一中编码,而UNICODE是一...
  • wordwarwordwar
  • wordwarwordwar
  • 2014-10-09 21:58
  • 2938

Java 判断中文字符串长度

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...
  • ss300400a
  • ss300400a
  • 2017-02-23 15:43
  • 2015

java中判断一个字符串是否“都为数字”和“是否包含数字”和“截取数字”

// 判断一个字符串是否都为数字     public boolean isDigit(String strNum) {        ...
  • xingxiupaioxue
  • xingxiupaioxue
  • 2017-02-10 21:24
  • 637

java实现汉字判断+中文符号判断

java一般的中文判断都是利用正则表达式 Pattern pattern = Pattern.compile("[\u4e00-\u9fcc]+"); System.out.println(pat...
  • qwkxq
  • qwkxq
  • 2016-12-07 17:48
  • 2205

Java 完美判断中文字符

Java判断一个字符串是否有中文一般情况是利用Unicode编码(CJK统一汉字的编码区间:0x4e00–0x9fbb)的正则来做判断,但是其实这个区间来判断中文不是非常精确,因为有些中文的标点符号比...
  • z69183787
  • z69183787
  • 2016-11-14 18:19
  • 797

java实现判断一个字符串是否包含特定关键词

现实当中可能遇到这样的问题:管理员需要配置一些关键字,如果用户发表的评论中包含这些关键字,就做一些处理。下面的这个类可以达到这个目的。 package com.syz.util; import j...
  • yunsyz
  • yunsyz
  • 2016-07-18 17:44
  • 5469
    个人资料
    • 访问:10268次
    • 积分:372
    • 等级:
    • 排名:千里之外
    • 原创:26篇
    • 转载:8篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论