题目:
我们定义,在以下情况时,单词的大写用法是正确的:
1.全部字母都是大写,比如 "USA" 。
2.单词中所有字母都不是大写,比如 "leetcode" 。
3.如果单词不只含有一个字母,只有首字母大写, 比如 "Google" 。
给你一个字符串 word 。如果大写用法正确,返回 true ;否则,返回 false 。
示例 1:
输入:word = "USA"
输出:true
示例 2:
输入:word = "FlaG"
输出:false
提示:
1 <= word.length <= 100
word 由小写和大写英文字母组成
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/detect-capital
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:
一、
将上列三种情况换一种说法:
1.如果第一个字母为小写,需要判断第二个字母是否为小写,不是则返回false,否则就返回true;
2.无论第一个字母是否大小写,其他字母必须与第二个字母大小写相同。
代码:
二、判断大写字母的个数
先统计出字符串中大写字母的个数:
以上三种情况之一成立都返回true,否则返回false。
代码:
小知识:
Java中,字符串数据实际上由String类所实现的。
1.java中获取字符串的长度,使用String类的length(),语法:
字符串名.length()
2.String对象的访问,使用charAt()方法得到指定位置的字符:
// charAt(index) //使用charAt函数获取字符串word中索引值为4的char值 charAt(4);
3.toUpperCase()和toLowerCase()方法分别实现字符串大小写的转换;
String str="THISIS A STRING"; String str1=str.toLowerCase(); //str1="thisis a string";
4.Character 类为操控字符提供了一系列有用处的类(例如:静态类),Java 编译器也将能在某些情况下创造一个 Character 对象
5. 逻辑运算符异或用^表示,前后条件有且只有一个true,即前后条件互斥。
Character.isLowerCase(word.charAt(i)) ^ Character.isLowerCase(word.charAt(1)) //1.小写(真) ^ 小写(真)==> 假 ==>true //2.小写(真) ^ 大写(假)==> 真 ==>false //3.大写(假) ^ 小写(真)==> 真 ==>false //4.大写(假) ^ 大写(假)==> 假 ==>true