可以使用正则表达式:
public boolean isNumeric(String str) {
Pattern pattern = Pattern.compile("[0-9]*");
Matcher isNum = pattern.matcher(str);
if (!isNum.matches()) {
return false;
}
return true;
}
但是这个方法并不安全,没有对字符串进行空校验。
在程序执行的时候很容易抛出异常。
例如我们执行:
public static void main(String[] args) {
String str = null;
System.out.println(BarcodeChecksum.INSTANCE.isNumeric(str));
}
就会抛出异常:
Exception in thread "main" java.lang.NullPointerException
at java.util.regex.Matcher.getTextLength(Matcher.java:1140)
at java.util.regex.Matcher.reset(Matcher.java:291)
at java.util.regex.Matcher.<init>(Matcher.java:211)
at java.util.regex.Pattern.matcher(Pattern.java:888)
at com.ossez.bcu.util.BarcodeChecksum.isNumeric(BarcodeChecksum.java:37)
at com.ossez.bcu.util.BarcodeChecksum.main(BarcodeChecksum.java:53)
所以这个方法并不准确。
如果执行:
public static void main(String[] args) {
String str = "";
System.out.println(BarcodeChecksum.INSTANCE.isNumeric(str));
}
将会返回 true。
这说明这个方法没有对空字符串进行校验。
可以使用 Apache 的 StringUtils.isNumeric() 函数进行判断。
这个函数位于 org.apache.commons.lang.StringUtils; 中。
但是,需要注意,如果传入参数为 "" 同样也会你存在判断不准确的情况,这时候需要首先对需要进行判断的参数进行非空校验,然后删除传入数据中的空格。
public static void main(String[] args) {
String str = "";
System.out.println(StringUtils.isNumeric(str));
}
上面这个函数将会返回 true。
请先 trim 数据。
Java 中怎样判断一个字符串全是数字
http://www.ossez.com/forum.php?mod=viewthread&tid=15387&fromuid=426
分享到:
相关推荐
这个方法用来处理java中可能有一些特别的需要,一大串中英文混合,需要中间截断或是中英中间添加一些特别的标识,调用这个方法 第一个参数是要处理的字符串,第二个是要在中英字符中间插入的字符。调用就可以得到想...
java接收用户输入的一个字符串和一个字符,将字符串中出现的所有该字符删除,打印新生成的字符串。
主要介绍了java基础-给出一个随机字符串,判断有多少字母?多少数字?文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
编写一个applet程序,在窗口界面中实现当输入一个字符串和一个字符后,原字符串中所有该字符将被删除并显示出结果
java将字符串中数字转换为中文大写,在输出字符串java将字符串中数字转换为中文大写,在输出字符串java将字符串中数字转换为中文大写,在输出字符串java将字符串中数字转换为中文大写,在输出字符串java将字符串中数字...
java从一个包含中文字的字符串中抽取数字部分的两种方法,自己使用后,感觉挺符合需求了,分享出来。有需要的可以看看,看是否符合需求。
这个是我自己写的一个JAVA的小方法,用正则表达式写的一个判断字符串是否为数字的一个方法,拿过来就能用,很方便,比如说:手机号等
在java算发中,求出字符串第一个数字; 如:“sdf545654afd” 他会返回,5,返回类型是(int)类型 如果字符串是:“打发士大夫” 则返回;-1, 想要运行,加入main()就行了。
java通过正则表达式获取字符串内的数字简单实例
java编程统计一个字符串中的字母,数字,空格,其他,输入一个字符串,就会输出字符串中包含的字母,数字,空格,其他
java字符串类型数字设置千分位分隔,可对整数、带小数点的数字、负数进行千分位分隔。并对字符串进行了数字判断,非数字类型的字符串不进行转换。
java字符串处理取出括号内的字符串 都是我自己试过可以用的j
输入一个字符串,统计出这个字符串的英文大写字母、小写字母、数字、空格以及其它字符的个数
java判断字符串是否存在递增或递减 java判断字符串是否重复
在本篇文章里小编给大家整理的是关于java判断一个字符串是否是小数的方法,有需要的朋友们学习下。
判断一个字符串是否是标识符,将字符串输出,带有异常处理:JAVA关键字不能作为标识符
在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序。例如: String[] arrays = new String[] { gyu, sdf, zf, 大同, 收到, 地方, 三等分, 的人, 反对高铁, 泛代数, 上的投入...
判断字符串是否全部是数字.txt
随机产生字符串,字符串中的字符只能由特殊字符(&@#$%*),大写字母(A-Z),小写字母(a-z)以及数字(0-9)组成,且每种字符至少出现一次。这样产生字符串的方式可以应用到如下场景,比如,我们有一个应用就是添加用户完毕...
Java字符、字符串、数组操作实例,主要是数组的复制、反转字符串中的字符、命令行参数、求字符串的长度及每一个位置上的字符、数组的排序、String类数组的操作等方面的例子,相信对初学者学习Java有帮助的。