HJ84 统计大写字母个数
描述
找出给定字符串中大写字符(即’A’-‘Z’)的个数。
数据范围:字符串长度:1≤∣s∣≤250 1≤∣s∣≤250
字符串中可能包含空格或其他字符
进阶:时间复杂度:O(n) O(n) ,空间复杂度:O(n) O(n)
输入描述:
对于每组样例,输入一行,代表待统计的字符串
输出描述:
输出一个整数,代表字符串中大写字母的个数
示例 1
输入:
A 1 0 1 1150175017(&^%&$vabovbaoadd 123#$%#%#O
输出:
2
题解
Character.isUpperCase(char c)
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNext()) {
// 对于每组样例,输入一行,代表待统计的字符串
String str = in.nextLine();
// 输出一个整数,代表字符串中大写字母的个数
int res = getRes(str);
System.out.println(res);
}
}
public static int getRes(String str){
int r=0;
for(char c:str.toCharArray()){
if(Character.isUpperCase(c)){
r++;
}
}
return r;
}
}
匹配不在大写字母 A 到 Z 范围内的任意一个字符。
import java.util.Scanner;
public class Main {
public static void main(String [] args){
Scanner sc =new Scanner(System.in);
while(sc.hasNext()){
String str = sc.nextLine();
// [^A-Z] 匹配不在大写字母 A 到 Z 范围内的任意一个字符。
System.out.println(str.replaceAll("[^A-Z]","").length());
}
}
}