题目:判断一个字符串真假,为真条件1:全部都为大写字母 2.全为小写字母 3.只有第一个为大写,其他的为小写字母。
解题思路:用最懒的方法,把数组化为字符数组,一个一个判断,并且用两个int来记录小写和小写字母的个数,结束循环后写一个if三个条件用||来判断,如果小写字母的个数==字符串数组的个数或者大写字母的个数==字符数组的个数或者大写字母个数==1小写字母==字符串数组长度-1并且字符数组第一个为大写 时返回真,否则返回假,附上代码
public boolean detectCapitalUse(String word) {
char[] a=word.toCharArray();
int daxie=0;
int xiaoxie=0;
for(int i=0;i<a.length;i++){
if(a[i]>=97&&a[i]<=122 ){
xiaoxie++;
}
if(a[i]>=65 && a[i]<=90 ){
daxie++;
}
}
if(daxie==a.length || xiaoxie==a.length || ((daxie==1&&xiaoxie==a.length-1)&&(a[0]>=65&&a[0]<=90))){
return true;
}else{
return false;
}
}
答案和我是一样的,不过其中一个答案有趣,用的是库函数解决的,附上看看:
public boolean detectCapitalUse(String word) {
return word.equals(word.toUpperCase()) ||
word.equals(word.toLowerCase()) ||
Character.isUpperCase(word.charAt(0)) &&
word.substring(1).equals(word.substring(1).toLowerCase());
}