描述:
给定一个单词,你需要判断其中大写字母的使用是否正确。
当下列情况之一成立时,我们将单词中大写字母的用法定义为正确:
这个单词中的所有字母都是大写字母,如“USA”。
这个单词中的所有字母都不是大写字母,如“leetcode”。
如果它有多个字母,例如“Google”,那么这个单词中的第一个字母就是大写字母。
否则,我们定义该单词没有以正确的方式使用大写字母。
样例:
输入: "USA"
输出: True
输入: "FlaG"
输出: False
代码:
public boolean detectCapitalUse(String word) {
// write your code here
if(word.length()==0){
return false;
}
if(word.length()==1){
return true;
}
else{
if(word.charAt(0)>'A'&&word.charAt(0)<'Z'){//第一个字母大写
if(word.charAt(1)>'A'&&word.charAt(1)<'Z'){//第二个也是大写
for(int i=2;i<word.length();i++){//length()-1改为length()
if(word.charAt(i)>'a'&&word.charAt(i)<'z'){
return false;
}
}
}
if(word.charAt(1)>'a'&&word.charAt(1)<'z'){
for(int i=2;i<word.length();i++){
if(word.charAt(i)>'A'&&word.charAt(i)<'Z'){
return false;
}
}
}
return true;
}
else if(Character.isLowerCase(word.charAt(0))){ //如果首位小写的情况
for(int i=1 ; i<word.length() ; i++){
if(!Character.isLowerCase(word.charAt(i)))
return false;
}
return true;
}
return false;
}
}
补充说明:
java.lang.Character.isLowerCase(char ch) 确定指定的字符是否为小写字母。
isDigit(ch): 如果指定的字符是一个数字,返回true;
isLetter(ch): 如果指定的字符是一个字母,返回true;
isLetterOrDigit(ch):如果指定的字符是一个字母或者数字,返回true;
isLowerCase(ch): 如果指定的字符是一个小写字母,返回true;
isUpperCase(ch): 如果指定的字符是一个大写字母,返回true;
toLowerCase(ch): 返回指定字符的小写形式;
toUpperCase(ch): 返回指定字符的大写形式。