如何在 Java 中检查给定字符串是否为布尔值?

How to check whether the given string is boolean or not in Java?

我有一根绳子。我要验证它是不是boolean类型?

布尔条件如下:

{ TRUE,True,true,T,t,YES,Yes,yes,Y,y}

负例也一样。

而不是用

复制您的代码
"true".equals(map.get(key).toString()) || "TRUE".equals(map.get(key).toString()) || True".equals(map.get(key).toString())

您可以使用 equalsIgnoreCase 方法使其变为

"true".equalsIgnoreCase(map.get(key).toString())

同样 tT

您可以使用 String.matches(String)

if (map.get(key).matches("(?i)t(rue)?|y(es)?")) {
  // true boolean
} else if (map.get(key).matches("(?i)f(alse)?|n(o)?")) {
  // false boolean
} else {
  // not boolean
}

matches 的参数是正则表达式。

(?i) 表示忽略大小写。

形式 t(rue)?只说 t 或 true(rue 是可选的)

| (bar character) 就像在说 or

其余单词定义为真

设置一组,一次:

static final Set<String> trueStrings = new HashSet<>(Arrays.asList("TRUE", "true", "True", "T", "t", "YES", "Yes", "yes", "Y", "y"));

然后,每次要测试字符串时:

boolean isTrue = trueStrings.contains(yourString);