1. 程式人生 > 實用技巧 >2020年 第11屆 藍橋杯 Java B組 省賽 第6題

2020年 第11屆 藍橋杯 Java B組 省賽 第6題

六、試題F: 分類計數

【問題描述】

輸入一個字串,請輸出這個字串包含多少個大寫字母,多少個小寫字母,多少個數字。

【輸入格式】

輸入一行包含一個字串。

【輸出格式】

輸出三行,每行一個整數,分別表示大寫字母、小寫字母和數字的個數。

【樣例輸入】

1+a=Aab

【樣例輸出】

1 3 1

【評測用例規模與約定】

對於所有評測用例,字串由可見字元組成,長度不超過 100。

解法一:'A' <= temp[i] && temp[i] <= 'Z'

package provincialGames_11_2020;
 
import java.util.Scanner;
 
public class _06_F_分類計數 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); char[] temp = str.toCharArray(); int upper = 0, lower = 0, digit = 0; for (int i = 0; i < temp.length; i++) { if ('A
' <= temp[i] && temp[i] <= 'Z') { upper++; } else if ('a' <= temp[i] && temp[i] <= 'z') { lower++; } else if ('0' <= temp[i] && temp[i] <= '9') { digit++; } } System.
out.println(upper + " " + lower + " " + digit); } }

解法二:Character.isUpperCase(a[i])

package provincialGames_11_2020_1_JavaB;
 
import java.util.Scanner;
 
public class _06_F_分類計數2 {
 
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s = in.nextLine();
        char[] a = s.toCharArray();
        int upper = 0, lower = 0, num = 0;
        for (int i = 0; i < a.length; i++) {
            if (Character.isUpperCase(a[i]))
                upper++;
            else if (Character.isLowerCase(a[i]))
                lower++;
            else if (Character.isDigit(a[i]))
                num++;
        }
        System.out.print(upper + " " + lower + " " + num);
    }
 
}