什么是最好的方法来检查一个String是否表示Java中的整数?

问题:

我通常使用以下成语来检查是否可以将String转换为整数。

public boolean isInteger( String input ) {
    try {
        Integer.parseInt( input );
        return true;
    }
    catch( Exception e ) {
        return false;
    }
}

这只是我,还是看起来有点黑客?什么是更好的方法?
看到我的答案(基准,基于earlier answer CodingWithSpike),看看为什么我扭转了我的立场,接受Jonas Klemming’s answer这个问题。我认为这个原始代码将被大多数人使用,因为它实现起来更快,更可维护,但是当提供非整数数据时,它的数量级会慢一些。

回答:

如果您不关心潜在的溢出问题,则该功能的执行速度比使用Integer.parseInt()的速度快20-30倍

public static boolean isInteger(String str) {
    if (str == null) {
        return false;
    }
    int length = str.length();
    if (length == 0) {
        return false;
    }
    int i = 0;
    if (str.charAt(0) == '-') {
        if (length == 1) {
            return false;
        }
        i = 1;
    }
    for (; i < length; i++) {
        char c = str.charAt(i);
        if (c < '0' || c > '9') {
            return false;
        }
    }
    return true;
}

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: What’s the best way to check to see if a String represents an integer in Java?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

− 1 = 2