把自己做的工具类留个档,同时分享给大家
import java.io.UnsupportedEncodingException;
/**
* 国标汉字检查工具类
* @author 林良益
*
*/
public class GBHZUtil {
//可忽略的分隔符号
private static final String skipChar = "[\\s\\t\\r\\n]";
private static final String NOGB2312CHAR = "不是GB2312字符";
private static final String GB2312CHAR_NOHZ = "GB2312非汉字字符";
private static final String GB2312CHAR_HZ = "GB2312汉字字符";
/**
* 检查字符窜是否是国标字库一二级标准字库汉字
* 如果含有国标一二级字库外的汉字则返回false
* @param orgString
* @return
* @throws UnsupportedEncodingException
* 抛出改异常说明当前的java虚拟机运行环境不支持GB2312编码
*/
public static boolean validateGB2312HZ(String orgString) throws UnsupportedEncodingException{
//忽略字符中的不可见分隔符
String noSkipCharStr = orgString.replaceAll(skipChar, "");
if("".equals(noSkipCharStr)){
return false;
}
char[] charArray = noSkipCharStr.toCharArray();
String identifyResult = null;
for(char c : charArray){
identifyResult = identifyGB2312Char(c);
if(!GB2312CHAR_HZ.equals(identifyResult)){
return false;
}
}
return true;
}
/**
* 识别GB2312字符
* @param theChar
* @return
* @throws UnsupportedEncodingException
* 抛出改异常说明当前的java虚拟机运行环境不支持GB2312编码
*/
public static String identifyGB2312Char(char theChar)throws UnsupportedEncodingException{
//将字符窜转成GB2312编码
byte[] byteArray = String.valueOf(theChar).getBytes("GB2312");
//根据国标区位码编码规则,判断字符
int highBit = 0;
for(int i = 0 ; i < byteArray.length ; i++){
int offset = (byteArray[i] & 0xFF) - 0xA0;
//GB2312字符区码在1-94
if(offset >= 1 && offset <= 94){
if(highBit == 0){
//找到一个汉字区码
highBit = offset;
}else{
//找到一个GB2312位码
if(highBit < 16 || highBit > 87){
return GB2312CHAR_NOHZ;
}else{
//位码在1-94区间 (其中对于第55 区的位码,最大为89
if(highBit == 55 && offset > 89){
return GB2312CHAR_NOHZ;
}else{
return GB2312CHAR_HZ;
}
}
}
}else{
//不是一个GB2312字符
return NOGB2312CHAR;
}
}
return NOGB2312CHAR;
}
}
分享到:
相关推荐
`Go-graceful`是一个专门设计用于处理HTTP服务器的优雅重启和关闭的Go库。它允许你在不中断现有连接的情况下进行服务的更新或重启,这对于提供不间断服务的在线应用至关重要。零宕机时间的实现是通过保持旧服务器...
`graceful-ncp`是一个专门为前端开发者设计的开源库,它实现了优雅的、异步的文件和目录的递归复制功能。这个库的核心目标是提供一种更稳定、更易用的方式来处理文件系统操作,特别是在处理大量文件或复杂目录结构时...
`graceful-cache`是一个针对Laravel的缓存存储库的包装器,其目标是提供一种更加优雅、灵活的方式来管理你的应用缓存。在这个项目中,开发者可以更好地控制缓存的生命周期,提高应用的效率。 `graceful-cache`的...
优雅图(Graceful Graph)是图论中的一个概念,它源于数学和计算机科学,特别是网络流和图遍历的问题。这个概念是由美国数学家Edward G. Kolaitis在1970年代提出的,目的是研究图的标号特性。在英特尔线程挑战赛3月...
优雅的前端开源库——`graceful-readlink`是一个针对`fs.readlink`进行优化的模块,主要用于解决Node.js在处理符号链接时可能出现的问题。在Node.js原生的`fs`模块中,`fs.readlink`函数用于读取符号链接(symbolic ...
控制优雅的应用程序 优雅的应用程序可以用信号来控制。 主进程支持以下信号 期限/INT 快速关机 放弃正常关机 合肥 重启工人 启动新的工作进程 优雅关闭旧的工作进程 USR2 升级可执行文件(启动新的主进程和工作进程...
本文将深入探讨“graceful-kill”的概念、作用以及它如何改善前端应用程序的性能。 1. 优雅地杀死进程 在计算机系统中,进程的正常退出通常涉及清理资源、保存状态和关闭连接等操作。"优雅地杀死"一个进程意味着...
本文将详细讲解如何将一个Java程序打包并发布为Windows后台服务,同时提供一个具体的示例。 首先,我们需要理解Java服务的概念。在Windows操作系统中,服务是一种在没有用户界面的情况下运行的特殊类型的应用程序,...
3. **优雅关闭(Graceful Shutdown)**:在“graceful-laravel-workers”中,主要目标是实现优雅关闭,即在接收到停止命令时,工作进程会等待当前处理的任务完成后再退出,确保数据的一致性和完整性。 4. **...
优雅的fs(graceful-fs)是Node.js生态系统中一个重要的模块,它作为原生fs模块的一个增强版本,提供了一系列的改进和优化,旨在提高文件系统的操作性能和稳定性。在Node.js开发过程中,文件系统操作是不可或缺的一...
**BGP Graceful Restart**(优雅重启)是一种使边界网关协议(BGP)能够在路由器重启时保持部分连接状态的方法,从而减少对网络的影响。在**RFC4724**中定义了这一机制,但它限制了BGP优雅重启的应用范围,即不包括...
express-graceful-exit, 为了得到零停机,优雅地退出 Express express-graceful-exit具有零停机时间的组件为 node.js 使用 Express 部署。 它是为 3. X, 开发的,因此它可能需要与 Express 2.x 兼容。这个模块最初是...
Functional Programming in C++ teaches developers the practical side of functional programming and the tools that C++ provides to develop software in the functional style. This in-depth guide is full ...
Java AJAX无刷技术是一种网页开发方法,它允许页面在不刷新整个页面的情况下与服务器进行交互,从而提升用户体验。AJAX(Asynchronous JavaScript and XML)并不是一种单一的技术,而是一组技术的组合,包括...
`graceful-fs-extra`是一个针对Node.js环境的`fs`模块扩展库,它在原生`fs`模块的基础上增加了一些实用功能,并提供了更优雅的错误处理机制,使得文件操作更加高效和稳定。本文将深入探讨`graceful-fs-extra`库的...
【BGP Graceful Restart】是BGP(Border Gateway Protocol)的一种特性,旨在确保在路由器或协议处理组件(如Route Processor,RP)重启时,路由信息的连续性和稳定性,避免网络中断。这一特性允许BGP Speaker...
在Java中实现可扩展的IO操作是一个复杂且重要的主题,尤其是对于需要处理大量并发连接的服务器应用程序。本文将介绍Scalable IO in Java一书,其作者是Doug Lea,他同时也是Java并发编程领域的权威。在这本书中,Lea...
go-graceful-restart-example, 具有优雅重启功能的服务器示例 服务器使用 Go graceful重新启动安装并运行服务器$ go get github.com/Scalingo/go-graceful-restart-example$ go-graceful-restart-examp
标题 "A fresh 3D image slider with graceful fallback" 指的是一种新型的3D图像轮播组件,它带有优雅的回退功能。在网页设计中,图像轮播是一种常见且吸引用户注意力的方式,用于展示多张图片或内容。3D效果则为...