2017-09-21 61 views
0

嗨,我需要從命令行讀取boolean的值。我是新來的Java所以一些基本的搜索後寫下面的代碼。問題是如果我使用nextBoolean()函數,我得到inputmismatchexception。所以我必須寫if條件檢查並硬編碼值。從命令行解析java中的布爾輸入。

public static void main(String[] args) { 
    Scanner s = new Scanner(System.in); 
    System.out.print("Enter Boolean Value: "); 
    String value = s.nextLine(); 
    //Boolean myBoolVal = s.nextBoolean(); // Throws InputMismatchException if anything other than true/false is entered. 
    Boolean myBoolVal = false; 
    if (value.equalsIgnoreCase("true") || value.equals("1")) 
    myBoolVal = true; 
} 

假設01也可以是integer類型,以便nextBoolean()拋出異常。那麼從java中的命令行讀取boolean輸入的最佳方式是什麼?

+0

當我們將一個布爾值作爲一個字符串進行計算時,我們檢查字符串的第一個字母是Y,y還是1,如果是真,其他的都是假的。 –

回答

0

從技術上講,您只能在命令行中輸入文本。方法nextBoolean只接受文本"true" and returns true並接受文本"false" and returns false。如果您想將文本「0」解釋爲false或將「1」解釋爲true或將「f」解釋爲false或將「t」解釋爲真等,那麼您必須按照已經完成的方式編寫自己的代碼。