java怎么判断字符串是否整数
内容摘要
1、用JAVA自带的函数public static boolean isNumeric(String str){
for (int i = 0; i < str.length(); i++){
System.out.println(str.charAt(i));
if (!Characte
for (int i = 0; i < str.length(); i++){
System.out.println(str.charAt(i));
if (!Characte
文章正文
1、用JAVA自带的函数
1 2 3 4 5 6 7 8 9 | public static boolean isNumeric(String str){ for (int i = 0; i < str.length(); i++){ System.out.println(str.charAt(i)); if (!Character.isDigit(str.charAt(i))){ return false ; } } return true ; } |
2、用正则表达式
首先要import java.util.regex.Pattern 和 java.util.regex.Matcher
1 2 3 4 5 6 7 8 | public boolean isNumeric(String str){ Pattern pattern = Pattern.compile( "[0-9]*" ); Matcher isNum = pattern.matcher(str); if ( !isNum.matches() ){ return false ; } return true ; } |
3、使用org.apache.commons.lang
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | org.apache.commons.lang.StringUtils; boolean isNunicodeDigits=StringUtils.isNumeric( "aaa123456789" ); 下面的解释: isNumeric public static boolean isNumeric(String str)Checks if the String contains only unicode digits. A decimal point is not a unicode digit and returns false . null will return false . An empty String ( "" ) will return true . StringUtils.isNumeric( null ) = false StringUtils.isNumeric( "" ) = true StringUtils.isNumeric( " " ) = false StringUtils.isNumeric( "123" ) = true StringUtils.isNumeric( "12 3" ) = false StringUtils.isNumeric( "ab2c" ) = false StringUtils.isNumeric( "12-3" ) = false StringUtils.isNumeric( "12.3" ) = false Parameters: str - the String to check, may be null Returns: true if only contains digits, and is non- null |
上面三种方式中,第二种方式比较灵活。
第一、三种方式只能校验不含负号“-”的数字,即输入一个负数-199,输出结果将是false;
而第二方式则可以通过修改正则表达式实现校验负数,将正则表达式修改为“^-?[0-9]+”即可,修改为“-?[0-9]+.?[0-9]+”即可匹配所有数字。
更多java知识请关注java基础教程。
代码注释
[!--zhushi--]