gpt4 book ai didi

java - 评估 Java 中的真实性

转载 作者:行者123 更新时间:2023-11-30 01:47:00 25 4
gpt4 key购买 nike

我正在用 Java 编写一个交互式控制台应用程序。我需要向用户询问带​​有 boolean 响应的问题,但是,Scanner.in.nextBoolean()它相当脆弱,因为它会在输入不正确时引发异常,因此将其包装在方法中似乎是一个好主意。我可以只使用 try/catch block 并坚持要求用户输入“true”或“false”来回答并捕获拼写错误。但后来我想我可以使用 Scanner.in.next()Scanner.in.nextLine()并使用类似 parseBoolean(String s) 来评估返回的字符串的真实性.

有没有办法评估字符串的“真实性”,超越真/假?也就是说,“0”/“1”"is"/“否”也将评估为真/假。

最佳答案

自定义实现怎么样?

  1. 使用映射并定义 true 和 false 的所有值
  2. 使用列表;如果值在列表中则为 true,否则为 false
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

// Define true and false values
Map<String, Boolean> truthiness = new HashMap<>();

truthiness.put("yes", true);
truthiness.put("1", true);
truthiness.put("true", true);
truthiness.put("t", true);
truthiness.put("ya", true);
truthiness.put("nein", false);
//etc

// Define only the true values
List<String> trueValues = Arrays.asList("yes", "1", "true", "t", "ya");

for(int i = 0; i < 5; ++i) {
String value = sc.nextLine().toLowerCase();

System.out.println("map: " + truthiness.get(value));
System.out.println("list: " + trueValues.contains(value));
}
}

输出

yes
map: true
list: true
1
map: true
list: true
t
map: true
list: true
ya
map: true
list: true
nein
map: false
list: false

关于java - 评估 Java 中的真实性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57581148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com