开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第16天,点击查看活动详情
一、题目描述:
我们定义,在以下情况时,单词的大写用法是正确的:
- 全部字母都是大写,比如 "USA" 。
- 单词中所有字母都不是大写,比如 "leetcode" 。
- 如果单词不只含有一个字母,只有首字母大写, 比如 "Google" 。
给你一个字符串 word 。如果大写用法正确,返回 true ;否则,返回 false 。
示例 1:
输入:word = "USA"
输出:true
示例 2:
输入:word = "FlaG"
输出:false
提示:
- 1 <= word.length <= 100
- word 由小写和大写英文字母组成
二、思路分析:
- 给字符串中大写的字符统计出来
- 给字符串中小写的字符统计出来
- 判断是否全大写,或者全小写,符合就返回true
- 如果不符合,就判断是否只有首字母大写,符合就返回true
- 否则就返回false
三、AC 代码:
class Solution {
public boolean detectCapitalUse(String word) {
int d = 0;
int x = 0;
for(int i = 0;i<word.length();i++){
if(word.charAt(i)>=65&&word.charAt(i)<=90){
d++;
}
if(word.charAt(i)>=97&&word.charAt(i)<=122){
x++;
}
}
//全大写
if(d==word.length()){
return true;
}
//全小写
if(x==word.length()){
return true;
}
//首字母大写,其他小写
if(word.charAt(0)>=65&&word.charAt(0)<=90&&x==word.length()-1){
return true;
}
return false;
}
}
四、总结:
此题其实正则也是一个不错的方法,特别适合这种规则的。
一行代码:
word.isupper() 判断字母是否全部大写
word.islower() 判断字母是否全部为小写
word.istitle() 判读字母是否标题化,即首字母大写