这是我写过的程序&我想以其他方式解决这个问题。我不想使用try-catch语句。
我已经研究了其他方法,但没有明确解释。
import java.io.*;
import java.util.*;
public class TPJava {
public static void main(String args[]) throws Exception {
Scanner scan = new Scanner(System.in);
try {
int int_var = scan.nextInt();
System.out.println("It is an Integer.");
}
catch (InputMismatchException e)
{
try
{
String str_var = scan.next();
System.out.println("It is a String");
}
catch (InputMismatchException ie)
{
try
{
Float f = scan.nextFloat();
System.out.println("It is Float");
}
catch (InputMismatchException ime)
{
System.out.println("Wrong Input.");
}
}
}
}
}
答案 0 :(得分:1)
if (XXX instanceof int)
{
System.out.println("It is an integer.");
}
else if (XXX instanceof String)
{
System.out.println("It is a string.");
}
....
(依此类推)
编辑: 找到了一个适合您的代码的解决方案。
Scanner scan= new Scanner(System.in);
if(scan.hasNextInt())
{
System.out.println("It is an integer.");
}
else if (scan.hasNextFloat())
{
System.out.println("It is a Float.");
}
....
else
{
System.out.println("It is a String.");
}
这检查下一个变量是否可以解释为整数/浮点数等等..... 我认为没有#34; String"所以我只使用了" else"声明
但是:之后你必须使用scan.next()或nextInt或类似的东西,否则它会一遍又一遍地继续使用相同的输入(我假设)