簡體   English   中英

如何以其他方式解決該程序? 我想知道用戶提供的輸入類型

[英]How can I solve this program in another way? I want to know the type of input given by user

這是我編寫的程序,我想以其他方式解決此問題。 我不想使用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.");
                }

            }

        }
    }
}
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.");
}

這檢查下一個變量是否可以解釋為整數/浮點數等。...我認為“ String”沒有任何內容,因此我只是在那兒使用了“ else”語句

但是:您之后必須使用scan.next()或nextInt之類的東西,否則它將一遍又一遍地繼續使用相同的輸入(我認為)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM