我有一个字符串。我必须验证它是否是boolean类型?
布尔条件如下:
{ TRUE,True,true,T,t,YES,Yes,yes,Y,y}
和负面情况一样。
答案 0 :(得分:1)
您可以使用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
}
匹配的参数是正则表达式。
(?i)说要忽略大小写。
表格t(rue)?只说t或true(rue是可选的)
| (酒吧字符)就像在说或
其余的单词被定义为真实的
答案 1 :(得分:1)
设置一次,一次:
static final Set<String> trueStrings = new HashSet<>(Arrays.asList("TRUE", "true", "True", "T", "t", "YES", "Yes", "yes", "Y", "y"));
然后,每次你想测试一个字符串:
boolean isTrue = trueStrings.contains(yourString);
答案 2 :(得分:0)
而不是使用
复制代码"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