我在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");
}
答案 0 :(得分:1)
您想检查String
是Double
还是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!");
}
}
}
我已经尝试过它并且有效!