检查字符串是否表示Java中的整数的最佳方法是什么?

检查字符串是否表示Java中的整数的最佳方法是什么?

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

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

是因为我吗,还是看上去有点刻薄?有什么更好的方法吗?


见我的答案(带有基准,基于较早的答案通过CodingWithSpike)看看为什么我改变了立场,接受了乔纳斯·克梅明的回答解决这个问题。我认为这段原始代码将被大多数人使用,因为它更快实现,更易于维护,但是当提供非整数数据时,它会慢几个数量级。


一只甜甜圈
浏览 554回答 3
3回答

慕尼黑8549860

如果您不关心潜在的溢出问题,则此函数的执行速度将比使用Integer.parseInt().public&nbsp;static&nbsp;boolean&nbsp;isInteger(String&nbsp;str)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(str&nbsp;==&nbsp;null)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;length&nbsp;=&nbsp;str.length(); &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(length&nbsp;==&nbsp;0)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i&nbsp;=&nbsp;0; &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(str.charAt(0)&nbsp;==&nbsp;'-')&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(length&nbsp;==&nbsp;1)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;=&nbsp;1; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(;&nbsp;i&nbsp;<&nbsp;length;&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;c&nbsp;=&nbsp;str.charAt(i); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(c&nbsp;<&nbsp;'0'&nbsp;||&nbsp;c&nbsp;>&nbsp;'9')&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;}

慕码人2483693

你有,但你只应该抓住NumberFormatException.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java