检查String是否为整数

Bog*_*kyi 1 java

我需要检查String是否是整数.我找到了这样的解决方案:

private boolean isInteger(String str) {
    try {
        Integer.parseInt(str);
        return true;
    } catch (NumberFormatException e) {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

没有try/catch子句,是否有更美观和正确的方法来做到这一点?

Nie*_*len 7

你可以试试像这样的正则表达式:

private boolean isInteger(String str) {
    return str.matches("\\-?\\d+");
}
Run Code Online (Sandbox Code Playgroud)

编辑

感谢@Maloubobola注意到我的第一次尝试不会解析签名的整数.

  • 这引入了一个微妙的错误:一个Long会匹配,而OP的问题中的代码则不会. (2认同)