判断输入的字符串是汉字,字母,还是数字?——经我实践最有效的方法
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();
}
网上判断输入是否是汉字,数字,字母,有很多方法,但经过实践许多方法效率很低,经常判断失败,所以在此不列举,下面这几种方法是经我实践验证效果最好的。
一:判断输入是否是汉字:
/**
* 判定输入汉字
* @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();
}
相关文章推荐
- hadoop之hadoop-mapreduce-examples-2.7.0.jar
- Android中的各类Span全面系统研究
- 为了在线程间进行可靠的通信,也为了互斥访问,同步是必要的。
- 加班是什么,可以吃吗?
- iOS多线程入门之NSThread,NSOperation,GCD
- css笔记13:display用法
- 政府应急指挥系统
- LeetCode Convert Sorted Array to Binary Search Tree
- IOS快速自定义UITabBarController内的TabBar控件
- 如何在.net4.0中使用.net4.5的async/await
- hdu 1565 方格取数(1) and hdu 1569 方格取数(2)
- Xcode SVN配置
- 有何难?
- AIX 5L 系统管理技术 —— 存储管理——物理卷
- ngForm
- ffmpeg参数说明:
- 百度O2O的十二年战略征程:我凭什么亮剑?
- opencv 3.0 defect
- c++ 消息传递(通过SendMessage)
- Spring中的线程池ThreadPoolTaskExecutor