怎么知道这个数字是双倍的

时间:2018-01-25 16:02:45

标签: java string if-statement int double

我在Java中编写了一些内容,用于查看作为字符串的内容,然后将该字符串转换为double或int IF ,找到一个小数(句点)。在我的代码中,它总是跳出循环并打印"没有找到数字"。这是为什么?有什么不对。

我的代码:

//check if its actually numbers
if(leftSide.matches("[0-9]+") && rightSide.matches("[0-9]+")){
    System.out.println("numbers found");

    if(leftSide.contains(".") || rightSide.contains(".")){
        System.out.println("convert to doubles");
    }else{
        System.out.println("convert to ints");
    }
}else{
    System.out.println("no numbers found");
}

1 个答案:

答案 0 :(得分:1)

您想检查StringDouble还是Integer还是不是,是吗?

我会这样做:

public class Demo{

    public static void main(String [] args) {
        String str = "54.45k";

        double num;

        try {
            num = Double.parseDouble(str);
            if((num == Math.floor(num)) && !Double.isInfinite(num)) {
                System.out.println("String is an Integer!");
            }else {
                System.out.println("String is a Double!");
            }
        } catch(Exception e) {
            System.out.println("String isn't an Integer or a Double!");
        }
    }
}

我已经尝试过它并且有效!