https://leetcode.com/problems/detect-capital/
We define the usage of capitals in a word to be right when one of the following cases holds:
-
All letters in this word are capitals, like
"USA"
. -
All letters in this word are not capitals, like
"leetcode"
. -
Only the first letter in this word is capital, like
"Google"
.
Given a string word
, return true
if the usage of capitals in it is right.
Example 1:
Input: word = “USA”
Output: true
Example 2:
Input: word = “FlaG”
Output: false
Constraints:
-
1 <= word.length <= 100
-
word
consists of lowercase and uppercase English letters.
方法一:字符统计
方法二:正则表达式
public class DetectCapital {
public boolean detectCapitalUse(String word) {
int capitalCount = 0, notCapitalCount = 0;
boolean firstLetterCapital = Character.isUpperCase(word.charAt(0));
for(int i = 0; i < word.length(); i++) {
if(Character.isUpperCase(word.charAt(i))) {
capitalCount++;
}else {
notCapitalCount++;
}
}
return firstLetterCapital && notCapitalCount == word.length() - 1 //
|| notCapitalCount == word.length()//
|| capitalCount == word.length();
}
public boolean detectCapitalUse2(String word) {
return word.matches(“[A-Z]|[A-Z]?[a-z]”);
}
}