java-判断字符串是否为数字
来源:互联网 发布:java 打印异常堆栈 编辑:程序博客网 时间:2024/05/29 05:56
正则表达式
方法一:
public static boolean isNumeric1(String str) { Pattern pattern =Pattern.compile("[0-9]*"); return pattern.matcher(str).matches();}
方法二:
public static boolean isNumeric(String str) { if(str.matches("\\d*")) { return true; } else { return false; }}
java自带函数
public static boolean isNumeric(String str) { for (int i = str.length();--i>=0;) { if(!Character.isDigit(str.charAt(i))){ returnfalse; } } return true;}
判断ASCII码值
public static boolean isNumeric(String str) { for (int i = str.length(); --i>=0;) { intchr = str.charAt(i); if(chr < 48 || chr > 57) return false; } return true;}
逐个判断str中的字符是否是0-9
public static boolean isNumeric3(String str) { final String number = "0123456789"; for(int i = str.length(); --i>=0;) { if(number.indexOf(str.charAt(i)) ==-1){ return false; } } return true;}
捕获NumberFormatException异常
public static boolean isNumeric00(String str) { try{ Integer.parseInt(str); return true; } catch (NumberFormatExceptione) { System.out.println("异常:\""+ str + "\"不是数字/整数..."); return false; }}
不提倡使用方法6,原因如下:
1. NumberFormatException是用来处理异常的,最好不要用来控制流程的。
2. 虽然捕捉一次异常很容易,但是创建一次异常会消耗很多的系统资源,因为它要给整个结构作一个快照。
看一下JDK源码:
java
public static long parseLong(String s,intradix)
throwsNumberFormatException
{
if(s ==null){
throw new NumberFormatException("null");
}
if(radix
throw new NumberFormatException("radix " + radix +
" less thanCharacter.MIN_RADIX");
}
if(radix >Character.MAX_RADIX){
throw new NumberFormatException("radix " + radix +
" greater thanCharacter.MAX_RADIX");
}
long result =0;
boolean negative = false;
int i = 0,max =s.length();
long limit;
longmultmin;
int digit;
if(max >0){
if(s.charAt(0) =='-'){
negative =true;
limit = Long.MIN_VALUE;
i++;
}else{
limit = -Long.MAX_VALUE;
}
multmin = limit / radix;
if(i
digit =Character.digit(s.charAt(i++),radix);
if(digit < 0){
throw newNumberFormatException(s);
}else{
result = -digit;
}
}
while(i
// Accumulating negatively avoidssurprises near MAX_VALUE
digit =Character.digit(s.charAt(i++),radix);
if(digit <0){
throw newNumberFormatException(s);
}
if(result
throw newNumberFormatException(s);
}
result *=radix;
if(result < limit +digit){
throw newNumberFormatException(s);
}
result -=digit;
}
}else{
throw new NumberFormatException(s);
}
if(negative){
if(i >1){
return result;
}else{
throw newNumberFormatException(s);
}
}else{
return -result;
}
}
可以看出来jdk里也是一个字符一个字符的判断,如果有一个不是数字就抛出NumberFormatException,所以还不如这个工作由我们自己来做,还省得再抛出一次异常…
- Java中判断字符串是否为数字
- JAVA判断字符串是否为数字
- JAVA判断字符串是否为数字
- java判断字符串是否为数字
- JAVA判断字符串是否为数字
- JAVA判断字符串是否为数字
- java判断字符串是否为数字
- Java判断字符串是否为数字
- JAVA判断字符串是否为数字
- JAVA判断字符串是否为数字
- JAVA判断字符串是否为数字
- JAVA判断字符串是否为数字
- JAVA判断字符串是否为数字
- java--判断字符串是否为数字
- java判断字符串是否为数字
- java 判断string字符串是否为数字
- java判断字符串是否为数字
- java 判断字符串是否为数字
- 又遇IDEA 乱输入代码,也不报错问题,解决后,笔而记之。
- 695. Max Area of Island
- 第九讲 数组排序算法:冒泡排序、选择排序、插入排序及二分查找技术
- 友盟推送
- 培训第一天,Java简介,JDK安装,环境配置及Java基础语法
- java-判断字符串是否为数字
- LINUX分区
- linux u-boot,/spl/u-boot-spl.lds:2: syntax error
- 中企动力与中国质量万里行消费投诉平台达成战略合作
- Python语法二 (人生苦短,我用Python)
- 深坑之Webview,解决H5调用android相机拍照和录像
- Java解析xml、解析xml四种方法、DOM、SAX、JDOM、DOM4j、XPath
- 完美解决json循环问题(使用javassist增强):Spring MVC中使用jackson的MixInAnnotations方法动态过滤JSON字段
- css实现宽高比固定小技巧