<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Java – 使用`Scanner`類讀取類型安全輸入 > 原文: [https://howtodoinjava.com/java/io/read-typesafe-input-scanner-class/](https://howtodoinjava.com/java/io/read-typesafe-input-scanner-class/) 學習在任何交互式 Java 應用程序中從控制臺讀取類型安全用戶輸入,即提示用戶直到用戶以正確的格式/數據類型輸入值。 ```java Table of Contents Type unsafe way of reading input [Not recommended] Typesafe way of reading input from console using Scanner [Recommended] ``` ## 讀取輸入內容的不安全方式 是否曾嘗試使用`Scanner`類在基于[交互式控制臺的程序](https://howtodoinjava.com/java/io/java-io-how-to-read-input-from-console/)中讀取用戶的輸入? 這是非常簡單的代碼。 您問用戶一個問題,用戶輸入值,然后按`Enter`。 然后,您可以使用`Scanner.nextXYZ()`方法讀取該值。 我們來看一個使用`Scanner`類從控制臺讀取輸入的示例。 ```java private static void typeUnsafeReadExample() { Scanner scanner = new Scanner(System.in); System.out.print("Enter your age as an integer > "); int age = scanner.nextInt(); System.out.println("Your age is " + age); scanner.close(); } //Output - 1 Enter your age as an integer > 10 Your age is 10 //Output - 2 Enter your age as an integer > ten Exception in thread "main" java.util.InputMismatchException at java.util.Scanner.throwFor(Scanner.java:864) at java.util.Scanner.next(Scanner.java:1485) at java.util.Scanner.nextInt(Scanner.java:2117) at java.util.Scanner.nextInt(Scanner.java:2076) at com.howtodoinjava.examples.TypeSafeInputExample.typeUnsafeReadExample(TypeSafeInputExample.java:19) at com.howtodoinjava.examples.TypeSafeInputExample.main(TypeSafeInputExample.java:9) ``` 用戶根據自己的理解鍵入正確的輸入時,由于`InputMismatchException`異常而使應用程序崩潰。 讓我們解決這個用例。 ## 使用掃描器從控制臺讀取輸入的類型安全方式 從理論上講,我們可以在閱讀之前檢查下一個標記是否與我們的預期輸入匹配,從而使程序更強大。 `Scanner.hasNextXYZ()`方法可以執行確切的操作,這是我們需要的。 如果可以將下一個標記讀取為請求的數據類型,則返回`true`。 例如,如果我們期望整數值,則僅當掃描器中的下一個可用標記可以解析為整數值時,調用`Scanner.hasNextInt()`才會返回`true`。 否則它將返回`false`,我們可以通知用戶輸入的值無效,并重新提示輸入新值。 讓我們來看看以上使用代碼的解決方案。 ```java private static void typeSafeReadExample() { Scanner scanner = new Scanner(System.in); System.out.print("Enter your age > "); while (!scanner.hasNextInt()) { scanner.nextLine(); //clear the invalid input before prompting again System.out.print("Please enter your age in natural positive number > "); } int age = scanner.nextInt(); System.out.println("Your age is " + age); scanner.close(); } //Output: Enter your age > ten Please enter your age in natural positive number > 10.5 Please enter your age in natural positive number > 10 Your age is 10 ``` 使用[`Scanner.hasNextXYZ()`](https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html)和`Scanner.nextXYZ()`方法,我們可以編寫任何基于控制臺的交互式 Java 應用程序,在其中可以強制用戶僅輸入有效輸入-而不會導致程序崩潰。 學習愉快!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看