JAVA判断字符是中文,数字,etc



java采用unicode编码,char类型为2个字节,可以存放一个汉字,以下方法可用来判断char变量为哪种字符。 

Java代码   收藏代码
  1. enum CharType{   
  2.     DELIMITER, //非字母截止字符,例如,.)( 等等 ( 包含U0000-U0080)   
  3.     NUM, //2字节数字1234   
  4.     LETTER, //gb2312中的,例如:ABC,2字节字符同时包含 1字节能表示的 basic latin and latin-1 OTHER,// 其他字符   
  5.     CHINESE;//中文字  
  6. }  
  7. /** 
  8. * 判断输入char类型变量的字符类型 
  9. * @param c char类型变量 
  10. * @return CharType 字符类型 
  11. */  
  12. private CharType checkType(char c){   
  13.         CharType ct =null;  
  14.   
  15.         //中文,编码区间0x4e00-0x9fbb                 if ((c >=   
  16.         0x4e00)&&(c <= 0x9fbb)){ ct = CharType.CHINESE; }  
  17.   
  18.         //Halfwidth and Fullwidth Forms, 编码区间0xff00-0xffef   
  19.         else if ( (c >= 0xff00) &&(c <= 0xffef)) { //        2字节英文字   
  20.         if ((( c >= 0xff21 )&&( c <= 0xff3a)) || (( c >= 0xff41 )&&( c   
  21.         <= 0xff5a))){ ct = CharType.LETTER; }  
  22.   
  23.                 //2字节数字                         else if (( c >=   
  24.                 0xff10 )&&( c <= 0xff19)  ){ ct = CharType.NUM; }  
  25.   
  26.                 //其他字符,可以认为是标点符号   
  27.                 else ct = CharType.DELIMITER; }  
  28.   
  29.         //basic latin,编码区间 0000-007f                 else if ( (c   
  30.         >= 0x0021) &&(c <= 0x007e)){ //1字节数字 if (( c >= 0x0030 )&&(   
  31.         c <= 0x0039)  ){ ct = CharType.NUM; } //1字节字符 else if ((( c   
  32.         >= 0x0041 )&&( c <= 0x005a)) || (( c >= 0x0061 )&&( c <=   
  33.         0x007a)))        { ct = CharType.LETTER; }   
  34.         //其他字符,可以认为是标点符号 else ct = CharType.DELIMITER; }  
  35.   
  36.         //latin-1,编码区间0080-00ff                 else if ( (c >=   
  37.         0x00a1) &&(c <= 0x00ff)){ if (( c >= 0x00c0 )&&( c <= 0x00ff)){   
  38.         ct = CharType.LETTER; } else ct = CharType.DELIMITER; } else ct   
  39.         = CharType.OTHER;  
  40.   
  41.         return ct;  
  42. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值