判断输入的字符串是汉字,字母,还是数字?——经我实践最有效的方法

——Friend or Foe 

网上判断输入是否是汉字,数字,字母,有很多方法,但经过实践许多方法效率很低,经常判断失败,所以在此不列举,下面这几种方法是经我实践验证效果最好的。

一:判断输入是否是汉字:

/**
         * 判定输入汉字
         * @param c
         * @return
         */
       public 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.GENERAL_PUNCTUATION
           || ub ==Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
           || ub ==Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS){
           returntrue;
       }
       returnfalse;
   }
       
       /**
         * 检测String是否全是中文
         * @param name
         * @return
         */
  public boolean checkNameChese(String name)
  {
          boolean isChinese=true;
          char[] cTemp = name.toCharArray();
          for(int i=0;i<name.length();i++)
          {
                  if(!isChinese(cTemp[i]))
                  {
                           isChinese=false;
                          break;
                  }
          }          
          return isChinese;
  }


二:判断输入是否是英文:

//判断表示是否全为英文  
    private boolean isEnglish(String str) {     
        for (int i = 0; i < str.length(); i++) {  
            if (!(str.charAt(i) >= 'A' && str.charAt(i) <= 'Z')  
                    && !(str.charAt(i) >= 'a' && str.charAt(i) <= 'z')) {  
                return false;  
            }  
        }  
        return true;  
    }  

三:判断输入是否是数字:

String txt = edInput.getText().toString();

   Pattern p = Pattern.compile("[0-9]*"); 
     Matcher m = p.matcher(txt); 
     if(m.matches() ){
      Toast.makeText(Main.this,"输入的是数字", Toast.LENGTH_SHORT).show();
      } 



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值