我通常使用以下成语来检查字符串是否可以转换为整数。
public boolean isInteger( String input ) { try { Integer.parseInt( input ); return true; } catch( Exception e ) { return false; } }
只是我,还是这看起来有点骇人听闻?有什么更好的方法?
我认为这个原始代码将被大多数人使用,因为它实现起来更快,更易于维护,但是当提供非整数数据时,它的速度要慢几个数量级。
如果您不关心潜在的溢出问题,此函数的执行速度将比使用Integer.parseInt().
Integer.parseInt()
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; }