华为机试题:字母大小写判断
题目描述:判断一个字符串是否是首字母大写且非首字母小写
运行时间限制:无限制
内存限制:无限制
输入:一个任意字符串,长度不超过128个字符
输出: 如果输入字符串首字符为大写字母且其他字符非大写字母,返回true
其他情况均返回false
样例输入:Hello world
样例输出:true
思路:将输入的字符串分为首字母和其他字母分别存储到变量中,然后判断首字母字符是否在’A’-‘Z’之间并且剩余字符串没有匹配到大写字母,那么就可以输出true,否则输出false。这里匹配字符用到正则表达式。
代码如下:
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PrefixUpper {
public static void main(String[] args) {
System.out.println("请输入要测试的字符串:");
Scanner console = new Scanner(System.in);
String str = console.nextLine();
console.close();
char firstLetter = str.substring(0, 1).charAt(0);
String latter = str.substring(1, str.length());
//正则表达式
Pattern p = Pattern.compile("[A-Z]");
Matcher matcher = p.matcher(latter);
if (firstLetter >= 'A' && firstLetter <= 'Z' && !matcher.find())
System.out.println("true");
else
System.out.println("false");
}
}