一尘不染

如何检查字符串是有效的int还是double

java

我试图确定用户输入的内容是否包含有效intdouble有效的内容String。如果输入是an
int或a,double则程序应声明"Invalid make"

这是我的代码:

else if (tokens[0].equals("make"))
{
  if (!tokens[2].equals(String)) System.out.println("     Invalid make");
  // I have 5 spaces above because I don't know how to use printf with strings
  searchByMake(tokens[2]);
}

编辑:对不起,困惑的家伙。““令牌[]”是一个字符串数组。

如果用户输入make = number数字tokens[2]),我试图让我的程序打印“ Invalid Make”


阅读 281

收藏
2020-12-03

共1个答案

一尘不染

您可以编写一个函数来测试它,方法是在不喜欢它时调用Double.parseDouble(String)并捕获NumberFormatException(它将处理doubleint值)

public static boolean isNumber(String str) {
    try {
        double v = Double.parseDouble(str);
        return true;
    } catch (NumberFormatException nfe) {
    }
    return false;
}

那你可以这样称呼它

if (isNumber(tokens[2])) {
  System.out.println("     Invalid make");
}

printfString实力的样子,

String msg = "Invalid make";
System.out.printf("     %s%n", msg);
2020-12-03