通常您必须将字符串解析为整数,例如:
public static int string2Int(String s, int defaultValue) {
int i=defaultValue;
try {
i=Integer.parseInt(s);
}
catch(Exception ex) {
}
return i;
}
代码对每个人都有好处,除了Exception
众所周知的昂贵过程。
所以问题是:谁将提供最有效的(在资源和速度方面)解析字符串的方法int
?该字符串包含一个十进制数(没有hex/bin/octal) - 可能是负数。如果字符串包含小数,则丢弃小数部分。
条件:该方法有 2 个参数:一个字符串和一个默认值 - 没有一个Exception
被丢弃。解析错误时,返回默认值。
更新
因此,有 3 种方法,条件经典(在问题本身),@ArtemKonovalov 的化身中直接解析的方法和@LiashenkoV 提出的通过 Apache Commons 的远程方法。
我做了一个小测试,生成 50k 个随机字符串,1/3 字符串 like int
,1/3 字符串double
,1/3 字符串被随机字符破坏。我们得到以下数字:
ClassicParser - 300 мс.
ArtemParser - 100 мс.
ApacheParser - 200 мс.
原来这个解决方案:
测试: