我试图确定用户输入的内容是否包含有效int或double有效的内容String。如果输入是an int或a,double则程序应声明"Invalid make"。
int
double
String
"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”
tokens[2]
您可以编写一个函数来测试它,方法是在不喜欢它时调用Double.parseDouble(String)并捕获NumberFormatException(它将处理double和int值)
Double.parseDouble(String)
NumberFormatException
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"); }
而printf有String实力的样子,
printf
String msg = "Invalid make"; System.out.printf(" %s%n", msg);