我使用下面的逻辑来检查收回的字符串是否是有效数字
package com;
public class Test {
public static void main(String args[]) {
String str = "122";
boolean b = isNumb(str);
System.out.println(b);
}
public static boolean isNumb(String str) {
String s = str;
for (int i = 0; i < s.length(); i++) {
if (!Character.isDigit(s.charAt(i)))
return false;
}
return true;
}
}
我将在一个高度多线程的环境中使用它,一次可以有800到900个并发用户,如果这个代码有任何循环漏洞,请告诉我吗?
请分享您的观点
提前致谢
答案 0 :(得分:6)
我会使用正则表达式:
public static boolean isNumb(String str) {
return str.matches("\\d+");
}
要为负数返回true,请添加可选的前导短划线:
return str.matches("-?\\d+");
答案 1 :(得分:2)
有更好的方法可以检查字符串是否为数字,例如使用正则表达式。
s.matches("^-?\\d+(\\.\\d)?$")
将轻松获取字符串是否为数字,其中s是您的字符串。
答案 2 :(得分:2)
用于验证给定的字符串是否为有效数字(不仅仅是整数):
boolean b = str.matches("^[+-]?(?=.)\\d*(\\.\\d+)?$");
答案 3 :(得分:2)
我只需执行以下操作来检查字符串是否为数字:
try {
final Integer i = Integer.parseInt("Your String");
} catch(final NumberFormatException nfe) {
//String is no number
}