理解你的意思!
你就是想判断输入字符串是否为数字!
问题很简单,要清楚并不是要转换成数字等。不是那么复杂。
如果我没判断错误的话,完全可以利用【NumberFormatException e】来判断是否为数字!
祝你好运!
你就是想判断输入字符串是否为数字!
问题很简单,要清楚并不是要转换成数字等。不是那么复杂。
如果我没判断错误的话,完全可以利用【NumberFormatException e】来判断是否为数字!
祝你好运!
非常感谢
如:Integer.parseInt(“123”);
int a = Integer.parseInt("aaa");
System.out.println("数字");
}
catch (Exception e) {
System.out.println("非数字"); }
return Pattern.matches(""\\d{1,}\\.?\\d*?",number);
}采用正则表达式来测试其是不是由数字和点组成。这个方法可以测试出其是不是整数,或是浮点数。当然像 "2."这样的数在这里也成合法的了。大家有兴趣的可以完善下。
int a = Integer.parseInt("aaa");
System.out.println("数字");
}
catch (Exception e) {
System.out.println("非数字"); }
这个方法一定不要用.CATCH中不可以做数据处理.把STRING中每一个字符和"0"1"2"3"4"5"6"7"8"9"进行比较.如果都通过就是数字.如果中间没通过就不是.
try{
Double.parseDouble(str);
return true;
}
catch(Exception e){
return false;
}
}这样也可以的。
这个方法一定不要用.CATCH中不可以做数据处理
--------------------
这不一定吧?
try{
Double.parseDouble(str);
return true;
}
catch(Exception e){
return false;
}
}这个好~
捕捉异常的方法,apache的一些源程序文件中,也是这么判断的,不过我感觉怪怪的
public boolean isNumber(String number){
return Pattern.matches(""\\d{1,}\\.?\\d*?",number);
}比较适合解决这个问题
public boolean isNumber(String number) {
return Pattern.matches("[\\+|\\-]?[0-9]+\\.?[0-9]*",number);
}
" 数字不能以0开头 "谁说的,“0”不是数字吗?,“0.1”不是数字吗!!!
你再看看你的regex
001不是过了么当然,你的(将来的?)用户喜欢把1写作000001那是例外
boolean b = Pattern.matches("[\\+|\\-]?[1-9]+[0-9]*\\.?[0-9]*",number);
if (!b) {
b = Pattern.matches("[\\+|\\-]?[0]\\.+\\d*",number);
}
if (!b) {
b = Pattern.matches("[0]",number);
}
return b;
}假如number为数字,可以分为三种情况:
1.绝对值abs(number) = 0;
2.abs(number)∈(0,1);
3.abs(number)∈[1,+∞);此处的 isNumber 函数可消除 001 也能过这种情况
int a = Integer.parseInt("aaa");
System.out.println("数字");
}
catch (Exception e) {
System.out.println("非数字"); }
String[] str={"0","2","3","4","5","6","7","8","9","."};
string var="sdfsf99";
然后使用for()
{
if(!var.indexOf(str[i]))
return false;
}
这是一种方法,可以做为参考!