这是我第一次使用Java的Pattern类,因为我想检查字符串是否为大写。特殊符号如“。”和“,”应被视为大写。以下是预期结果:
"test,." should return false //because it has a lowercase character
"TEST,." should return true //because all are uppercase and the special characters
"test" should return false //because it has a lowercase character
"TEST" should return true //because all are uppercase
"teST" should return false //because it has a lowercase character
我尝试使用apache的StringUtils,但它不能以这种方式工作..
答案 0 :(得分:20)
您可以查看:
if (str.toUpperCase().equals(str)) {..}
答案 1 :(得分:4)
只需搜索[a-z]
,如果找到则返回false:
if (str.matches(".*[a-z].*")) {
// Negative match (false)
}
或者,搜索^[^a-z]*$
(不确定Java正则表达式语法,但基本上整个字符串不是小写字符):
if (str.matches("[^a-z]*")) {
// Positive match (true)
}
答案 2 :(得分:2)
你可以遍历字符。它的优点是您可以根据需要自定义匹配。
boolean ok = true;
for(char c : yourString.toCharArray()) {
if(Character.isLetter(c) && !Character.isUpperCase(c)) {
ok = false;
break;
}
}
// ok contains your return value