如何在 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())
同样 t
和 T
您可以使用 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);
我有一根绳子。我要验证它是不是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())
同样 t
和 T
您可以使用 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);