如何以其他方式解决此程序?我想知道用户给出的输入类型

时间:2017-02-13 13:27:28

标签: java core

这是我写过的程序&我想以其他方式解决这个问题。我不想使用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.");
                }

            }

        }
    }
}

1 个答案:

答案 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或类似的东西,否则它会一遍又一遍地继续使用相同的输入(我假设)