亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 BufferedReader 獲取整數

如何使用 BufferedReader 獲取整數

慕桂英4014372 2023-09-20 16:15:06
我正在為自己編寫一個小程序,但遇到了一個問題。我希望能夠在控制臺中輸入一個數字,并提取變量的數字。直到此時我才明白。int aNumber = Integer.parseInt(br.readLine());除非我想在控制臺輸入的內容不是數字時收到錯誤。像這樣但當然有效的東西:void Test() {     while (true) {             try {             aNumber = Integer.parseInt(br.readLine());         }          catch (IOException e) {             e.printStackTrace();         }                 if (aNumber >= 1) {             System.out.println("Hurray you enterd a number! It is " + aNumber + ".");                         return;         } else {             System.out.println("Error: Something went wrong. Please try again.\n");         }     } }如果你輸入一個數字,它就可以正常工作。但我希望能夠輸入文本并收到錯誤后重試。例如,如果您在控制臺中鍵入:1回答:萬歲,您輸入了一個數字!是 1。=====2564回答:萬歲,您輸入了一個數字!現在是 2564。=====電爐123回答:錯誤:出了問題。請再試一次。=====感謝所有試圖提供幫助的人。拉爾斯·莫森
查看完整描述

3 回答

?
九州編程

TA貢獻1785條經驗 獲得超4個贊

這會起作用。我希望你能理解解決方案。如果解析失敗則 Integer.parseInt()拋出。NumberFormatException


void test() {

            while (true) {

                int aNumber;

                try {

                    aNumber = Integer.parseInt(br.readLine());

                    System.out.println("Hurray you enterd a number! It is " + aNumber + ".");

                    return;

                } catch (NumberFormatException | IOException e) {

                    System.out.println("Error: Something went wrong. Please try again.\n");


                }

            }

        }


查看完整回答
反對 回復 2023-09-20
?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

您的代碼不起作用,因為輸入字符串或除 之外的任何其他類型int都會生成 aNumberFormatException并且您沒有捕獲它。


if 語句是不必要的,因為只有給出文本時才會執行 catch 塊。轉換時將引發異常,因此下面的行將不會執行。


請檢查此代碼


void Test() {

    while (true) {

        try {

            aNumber = Integer.parseInt(br.readLine());

            System.out.println("Hurray you enterd a number! It is " + aNumber + ".");

            return;

        } catch (NumberFormatException | IOException e) {

            e.printStackTrace();

            System.out.println("Error: Something went wrong. Please try again.\n");

        }

    }

}


查看完整回答
反對 回復 2023-09-20
?
慕斯王

TA貢獻1864條經驗 獲得超2個贊

您可以做的最簡單的事情就是捕獲NumberFormatException然后打印您想要的消息。


請參閱下面的工作示例:


import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;


public class ReadNumber {


    public static void main(String[] args) {

        int aNumber = 0;


        while (true) {

            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

            try {

                aNumber = Integer.parseInt(br.readLine());

            } catch (NumberFormatException e) {

                System.out.println("That wasn't a number.");

                continue;

            } catch (IOException e) {

                e.printStackTrace();

            }

            if (aNumber >= 1) {

                System.out.println("Hurray you entered a number! It is " + aNumber + ".");

                continue;

            } else {

                System.out.println("Error: Something went wrong. Please try again.\n");

            }

        }

    }

}


查看完整回答
反對 回復 2023-09-20
  • 3 回答
  • 0 關注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號