2017-04-01 93 views
-5

我有一个字符串,我知道只包含一个数字。如何检查字符串是float还是int?

我想检查这个数字是int还是float。

+0

任何企图从你身边? –

+0

欢迎来到Stack Overflow!我们是一个问答网站,而不是一个打码人员的服务。请将您的问题缩小到针对本网站主题的特定编码问题。请参阅:[为什么“有人可以帮助我?”不是一个实际的问题?](http://meta.stackoverflow.com/q/284236)和[当我不确定我在找什么时问一个好问题?](https:// meta。 stackoverflow.com/questions/262527/how-to-ask-a-good-question-when-im-not-sure-what-im-looking-for) –

+0

我不知道这是如何标记为重复的主题完全不同,很显然OP要检查一个字符串是float还是int?**“88a”不是int不float **而不是** 312/100 = 3.12的结果是int或float ** –

回答

4

有许多办法来解决你的问题,例如,你可以使用try{}catch(){}

解决方案1 ​​

public static void main(String[] args) { 
    String str = "5588"; 
    //check if int 
    try{ 
     Integer.parseInt(str); 
    }catch(NumberFormatException e){ 
     //not int 
    } 
    //check if float 
    try{ 
     Float.parseFloat(str); 
    }catch(NumberFormatException e){ 
     //not float 
    } 
} 

解决方案2

或者你可以使用正则表达式\d*\.?\d*

boolean correct = str.matches("\\d*\\.?\\d*"); 
相关问题