【发布时间】:2013-08-07 08:51:27
【问题描述】:
我正在使用以下逻辑来检查收到的字符串是否为有效数字
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 个并发用户,如果这段代码有任何漏洞,请告诉我??
请分享你的看法
提前致谢
【问题讨论】:
-
你能用这样的东西吗? stackoverflow.com/questions/1102891/…
-
顺便说一句,您的代码不适用于浮点数,甚至不讨论十六进制之类的东西。
-
你的方法完全没问题。另一种选择是使用
str.toCharArray()并直接检查生成的char[],而不是检查charAt()方法中的边界。但我认为您不会注意到小字符串的性能改进(尤其是与生成的需要收集的垃圾 char[] 相比)。 -
您的代码会因负数而中断:)
-
@anubhava 矫枉过正? :p
标签: java