Java 如何检查字符串是有效的int还是double
我试图确定用户的输入是否包含有效的int或double而不是有效的字符串。如果输入为int或double,则程序应说明make无效 这是我的密码:Java 如何检查字符串是有效的int还是double,java,string,Java,String,我试图确定用户的输入是否包含有效的int或double而不是有效的字符串。如果输入为int或double,则程序应说明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
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时输入Make=number[2]您可以使用instanceof
您可以使用instanceof
还有双倍的
对于double也..您可以编写一个函数来测试它,方法是调用并捕获
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 msg = "Invalid make";
System.out.printf(" %s%n", msg);
您可以编写一个函数来测试它,方法是调用并捕获
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 msg = "Invalid make";
System.out.printf(" %s%n", msg);
您是在尝试测试字符串是否等于一个特定的整数,还是任何一个整数?这很大程度上取决于你认为是一个int /双。1.2345678+E9符合条件吗?是吗。?是吗?FF01?任何整数。它不能等于一个数字,因为在我的程序中make是一个名称,而不是一个数字。请提供有关令牌数组的更多信息。它是一个字符串数组吗?您是在尝试测试字符串是否等于一个特定的整数,还是任何一个整数?这很大程度上取决于你认为是int /双。1.2345678+E9符合条件吗?是吗。?是吗?FF01?任何整数。它不能等于一个数字,因为在我的程序中make是一个名称,而不是一个数字。请提供有关令牌数组的更多信息。它是字符串数组吗?因为令牌是字符串数组。您的解决方案将永远无法工作。问题已更新为声明它是字符串数组。@RobbyCornelissen对于字符串数组,这将是多余的。我认为我们可能过早下结论。也许是因为缺乏经验p@harsh.prasad如果令牌绝对是字符串[],它实际上甚至不会编译。@harsh.prasad如果您错了,它不会编译。应用双精度实例是非法的。去试试看。不要让我引用JLS,因为令牌是一个字符串数组。您的解决方案将永远无法工作。问题已更新为声明它是字符串数组。@RobbyCornelissen对于字符串数组,这将是多余的。我认为我们可能过早下结论。也许是因为缺乏经验p@harsh.prasad如果令牌绝对是字符串[],它实际上甚至不会编译。@harsh.prasad如果您错了,它不会编译。应用双精度实例是非法的。去试试看。不要让我引用JLS。这个问题令人难以置信。正确答案被否决,错误答案被否决。先生,无论如何+1。@RobbyCornelissen我想人们只是在读标题。需要为null值添加第二个catch catch nullpointerexception e{}您还可以应用为该方法记录的正则表达式。这个问题令人难以置信。正确答案被否决,错误答案被否决。先生,无论如何+1。@RobbyCornelissen我想人们只是在阅读标题。需要为null值添加第二个catch catch nullpointerexception e{}您还可以应用为该方法记录的正则表达式。