您的位置:首页 > 其它

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

2015-07-06 16:36 561 查看
——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();

      } 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: