2017-09-21 314 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”解释为真等,那么您必须按照已经完成的方式编写自己的代码。