Java 如何检查字符串是float还是int?
我有一个字符串,我知道它只包含一个数字Java 如何检查字符串是float还是int?,java,string,int,Java,String,Int,我有一个字符串,我知道它只包含一个数字 我想检查这个数字是int还是float。有很多方法可以解决您的问题,例如,您可以使用尝试{}catch(){}: 解决方案1 public static void main(String[] args) { String str = "5588"; //check if int try{ Integer.parseInt(str); }catch(NumberFormatException e){
我想检查这个数字是int还是float。有很多方法可以解决您的问题,例如,您可以使用
尝试{}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
或者您可以使用regex[-+]?[0-9]*\.?[0-9]+
:
boolean correct = str.matches("[-+]?[0-9]*\\.?[0-9]+");
有关更多详细信息,请查看此晚到派对。在Apache Commons NumberRutils类中 isCreatable(String),用于检查字符串是否为有效的Java数字
log.info("false {} ", NumberUtils.isCreatable("NA.A"));
log.info("true {} ", NumberUtils.isCreatable("1223.589889890"));
log.info("true {} ", NumberUtils.isCreatable("1223"));
log.info("true {} ", NumberUtils.isCreatable("2.99e+8"));
希望这对其他人有所帮助。您有任何尝试吗?欢迎来到Stack Overflow!我们是一个问答网站,而不是一个编码出租服务。请将您的问题缩小到一个特定的编码问题,这将是本网站的主题。请参阅:建议作为解决方案的正则表达式无效。它不接受负号,它接受奇怪的字符串,比如
3.
,甚至只是
@jbx。这是正确的,这是我开始学习正则表达式的很长一段时间以来的事。我纠正了我的错误,希望这能帮到更多的忙。是的,新的看起来不错\\d
仍然可以代替[0-9]
工作,但在这种情况下,目的可能更明确(因为它正在解析一个数字)。Integer.parseInt(“1”)和Float.parseFloat(“1”)
都不会引发异常