`

java判断中文汉字工具类

    博客分类:
  • J2SE
 
阅读更多
package com.wlkj.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import net.sourceforge.pinyin4j.PinyinHelper;

public class ChineseUtil {

	/**
	 * 判断中文字符
	 * @param c
	 * @return
	 */
	public static boolean isChinese(char c){
	    Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
	    if(ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS ||
	       ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS ||
	       ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A ||
	       ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B ||
	       ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION ||
	       ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS ||
	       ub == Character.UnicodeBlock.GENERAL_PUNCTUATION){
	        return true;
	    }
	    return false;
	}

	/**
	 * 包含中文字符
	 * @param str
	 * @return
	 */
	public static boolean containsChinese(String str){
	    char[] ch = str.toCharArray();
	    for(char c : ch){
	        if(isChinese(c)){
	            return true;
	        }
	    }
	    return false;
	}
	
	/**
	 * 是否中文(非标点符号)
	 * @param c
	 * @return
	 */
	public static boolean isChineseWord(char c) {
		char[] ch = {c};
		Pattern pattern = Pattern.compile("([\u4E00-\uFA29]|[\uE7C7-\uE7F3])");
		Matcher matcher = pattern.matcher(new String(ch));
		return matcher.find();
	}
	
	/**
	 * 包含汉字(非标点符号)
	 * @param name
	 * @return
	 */
	public static boolean containsChineseWords(String name) {
		Pattern pattern = Pattern.compile("^.*([\u4E00-\uFA29]|[\uE7C7-\uE7F3])+.*$");
		Matcher matcher = pattern.matcher(name);
		return matcher.find();
	}
	
	/**
	 * 转换成拼音字母缩写
	 * @param str
	 * @return abbr
	 */
	public static String toPinyinAbbr(String str){
		String abbr = "";
		for(char c : str.toCharArray()){
			if(ChineseUtil.isChineseWord(c)){
				abbr += PinyinHelper.toHanyuPinyinStringArray(c)[0].substring(0, 1).toUpperCase();
			}
		}
		return abbr;
	}
	
	
	public static void main(String[] args) {
		System.out.println(isChinese('め'));// false
		System.out.println(isChineseWord('我'));// true
		System.out.println(containsChinese("a我b"));// true
		System.out.println(containsChineseWords("a,b")); // false
	}
}

 

分享到:
评论

相关推荐

    java 判断汉字 汉字的判断

    ### Java判断字符串是否包含汉字的方法 在开发过程中,有时我们需要判断一个字符串是否包含汉字,并根据判断的结果执行不同的逻辑。这通常出现在需要处理多语言输入的情况下,例如用户输入验证、文本分析等场景。...

    Java中判断字符串是中文或者英文的工具类分享

    【Java 判断字符串中文英文工具类】 在Java编程中,有时我们需要判断一个字符串中的字符是否为中文或英文。为了实现这个功能,我们可以创建一个工具类,利用Java的`Character`类和正则表达式进行判断。以下是一个...

    java 字符串中文判断

    在实际项目中,这样的工具类对于处理中文字符的检测和统计是非常有用的,能够提高代码的可读性和复用性。在Java中处理字符串,特别是涉及到特殊字符集如中文时,对字符编码的理解是必不可少的。

    java金额数字转中文工具类详解

    Java 金额数字转中文工具类是将阿拉伯数字转换为汉字表示的工具类,具有实用的参考价值。本工具类主要用于将金额数字转换为中文表示,例如将12345.67转换为「一万二千三百四十五元六十七分」。本工具类的实现主要...

    java数字转汉字工具类详解

    Java数字转汉字工具类详解 Java数字转汉字工具类是指将数字转换为汉语中人民币的大写的工具类。该工具类主要用于处理金额的转换,提供了一种将数字转换为汉语中人民币的大写的解决方案。 在Java数字转汉字工具类中...

    Java日期工具类

    Java日期工具类 1、日期的各种格式化 2、获取当前年度 3、获取当前月份 4、获取当前天号数 5、获取当前时间往前推一个月的时间 6、获取上个月("MMM yyyy") 7、获取上个月("yyyymm") 8、获取上个月("yyyy-mm") 9、...

    java实现数字转换人民币中文大写工具

    Java 实现数字转换人民币中文大写工具 Java 实现数字转换人民币中文大写工具是指使用 Java 语言将数字转换为人民币中文大写格式的工具。该工具具有很高的实用价值,特别是在人事业务系统开发中,经常需要将数字转换...

    我积攒的java工具类 基本满足开发需要的工具类

    D:\002 我的工具类\006 汉字转换成拼音\SpellUtils.java D:\002 我的工具类\007 字符串 D:\002 我的工具类\007 字符串\StringUtils.java D:\002 我的工具类\008 校验 D:\002 我的工具类\008 校验\一起使用 D:\002 我...

    Java 所有字符串转UTF-8 万能工具类-GetEncode.java

    不需要关心接受的字符串编码是UTF_8还是GBK,还是ios-8859-1,自动转换为utf-8编码格式,无需判断字符串原有编码,用法://处理编码String newStr = GetEncode.transcode(oldStr);

    Java 正则表达式判断字符串是否包含中文

    ### Java正则表达式判断字符串是否包含中文 在日常的软件开发过程中,我们经常会遇到需要对输入的字符串进行校验的情况。例如,在处理用户输入、文本分析或数据清洗时,可能需要判断一个字符串中是否包含中文字符。...

    JAVA公历农历换算工具类

    ### JAVA公历农历换算工具类知识点解析 #### 一、概述 在软件开发中,日期处理是一项常见的需求。特别是对于具有悠久历史文化的国家和地区,如中国,公历与农历之间的转换尤为常见。本篇文章将深入分析一个JAVA...

    java自定义工具类,对字符串进行特殊处理

    1.删除字符 2.去空格 3.去除所有空格和特殊字符 4.判断邮箱 5.字符串集合转字符串 6.只保留汉字 7.关键词前后是否包含英文字母 8.去除字符串中的附件 9.获取下标单个位置和所有位置

    java判断中文字符串长度的简单实例

    因此,在这篇“Java判断中文字符串长度的简单实例”中,作者提供了几种计算字符串长度的方法,尤其强调了如何正确计算含有中文字符的字符串长度。 首先,Java中字符串的长度使用`.length()`方法来获取,但这个方法...

    获取编码格式的工具类

    GB2312和GBK是中国大陆广泛使用的简体中文编码,其中GBK是GB2312的扩展,包含更多的汉字和其他字符。UTF-8是Unicode的一种变长编码方式,它可以表示全世界几乎所有的字符,而且在互联网上使用最为广泛。 “获取编码...

    java检测编码工具类

    Java编码检测工具类是Java开发中非常实用的一个组件,它能够帮助开发者准确地识别和处理各种文件的编码格式。在处理跨平台或者不同系统间的数据交换时,编码问题常常成为困扰,因为不同的操作系统和程序可能使用不同...

    Java - DateUtil 日期时间转换工具类

    资源名称:DateUtil 日期时间转换工具类 内容概要:日期时间转换工具类,包括基本的Date类型,String类型,TimeStamp类型,LocalDateTime类型,LocalDate类型之间的互相转换,还提供了许多与时间获取,时间计算有关...

    Java实现中文转拼音.rar

    总结来说,“Java实现中文转拼音.rar”提供的工具类是一个便捷的Java解决方案,它能够帮助开发者将中文汉字转换为拼音。通过解压并运行`PinyinTest`,你可以快速验证其功能并集成到自己的项目中,为处理中文文本带来...

    Java判断中英文符号、标点的实现

    Java判断中英文符号、标点的实现 Java判断中英文符号、标点的实现是Java开发中一个重要的知识点,本篇文章主要介绍了Java中判断中英文符号、标点的实现方法。 在Java中,判断中英文符号、标点可以使用UnicodeBlock...

    JAVA日文字符检查

    根据给定文件的信息,我们可以总结出以下几个主要的知识点: ### 1.... ... - `&` 转换为 `&...在实际应用中,这些方法通常会被封装成工具类的一部分,并广泛应用于前端表单验证、后端数据校验等场景。

    Java工具类

    对于处理中文和拼音,`PinyinUtil`工具类可以帮助转换汉字到拼音,这对于搜索、排序或生成友好URL非常有用。例如,`getPinyin(String hanzi)`可以返回汉字的全拼。 JSON工具类如`JsonUtil`则处理JSON数据的序列化和...

Global site tag (gtag.js) - Google Analytics