【题目07】统计字符串的中各字符类型个数

【程序7】
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

package com.share.test01_10;

import java.util.Scanner;

/**
 * 【程序7】题目:<br>
 * 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
 * 
 * @author brx
 */
public class Test07 {
    public static void main(String[] args) {
        test();
    }

    /**
     * 思路:统计字符串中的英文字母,空格,数字,其他字符<br>
     * 思路1:通过将字符串中的字符转化为字符数组来比较ASCII码表中的范围<br>
     * 思路2:将英文字母,空格,数字分别用字符数组存储来遍历比较<br>
     * 思路3:使用Character类中的判断方法
     */
    public static void test() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您要输入的字符串:");
        String str = sc.nextLine();
        test1_1(str);
        // test1_2(str);
        // test2(str);
        // test3(str);
    }

    /**
     * 思路1_1
     */
    public static void test1_1(String str) {
        char[] c = str.toCharArray();
        int upperNum = 0;// 大写英文字母个数
        int lowerNum = 0;// 小写英文字母个数
        int digtaNum = 0;// 数字个数
        int spaceNum = 0;// 空格个数
        int otherNum = 0;// 其他字符个数
        for (char a : c) {
            if (a >= 65 && a <= 90) {
                upperNum++;
            } else if (a >= 97 && a <= 122) {
                lowerNum++;
            } else if (a >= 48 && a <= 57) {
                digtaNum++;
            } else if (a == 32) {
                spaceNum++;
            } else {
                otherNum++;
            }
        }
        System.out.println("大写英文字母个数: " + upperNum + " 小写英文字母个数: " + lowerNum + " 数字个数: " + digtaNum + " 空格个数:  "
                + spaceNum + " 其他字符个数:  " + otherNum);
    }

    /**
     * 思路1_2
     */
    public static void test1_2(String str) {
        int upperNum = 0;// 大写英文字母个数
        int lowerNum = 0;// 小写英文字母个数
        int digtaNum = 0;// 数字个数
        int spaceNum = 0;// 空格个数
        int otherNum = 0;// 其他字符个数
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (c >= 'A' && c <= 'Z') {
                upperNum++;
            } else if (c >= 'a' && c <= 'z') {
                lowerNum++;
            } else if (c >= '0' && c <= '9') {
                digtaNum++;
            } else if (c == ' ') {
                spaceNum++;
            } else {
                otherNum++;
            }
        }
        System.out.println("大写英文字母个数: " + upperNum + " 小写英文字母个数: " + lowerNum + " 数字个数: " + digtaNum + " 空格个数:  "
                + spaceNum + " 其他字符个数:  " + otherNum);
    }

    /**
     * 思路2
     */
    public static void test2(String str) {
        int upperNum = 0;// 大写英文字母个数
        int lowerNum = 0;// 小写英文字母个数
        int digtaNum = 0;// 数字个数
        int spaceNum = 0;// 空格个数
        int otherNum = 0;// 其他字符个数
        String sl = "qwertyuiopasdfghjklzxcvbnm";
        String su = sl.toUpperCase();
        String sd = "0123456789";
        String ss = " ";
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (sl.indexOf(c) != -1) {
                lowerNum++;
            } else if (su.indexOf(c) != -1) {
                upperNum++;
            } else if (sd.indexOf(c) != -1) {
                digtaNum++;
            } else if (ss.indexOf(c) != -1) {
                spaceNum++;
            } else {
                otherNum++;
            }
        }
        System.out.println("大写英文字母个数: " + upperNum + " 小写英文字母个数: " + lowerNum + " 数字个数: " + digtaNum + " 空格个数:  "
                + spaceNum + " 其他字符个数:  " + otherNum);
    }

    /**
     * 思路3
     */
    public static void test3(String str) {
        int upperNum = 0;// 大写英文字母个数
        int lowerNum = 0;// 小写英文字母个数
        int digtaNum = 0;// 数字个数
        int spaceNum = 0;// 空格个数
        int otherNum = 0;// 其他字符个数

        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (Character.isUpperCase(c)) {
                upperNum++;
            } else if (Character.isLowerCase(c)) {
                lowerNum++;
            } else if (Character.isDigit(c)) {
                digtaNum++;
            } else if (Character.isSpaceChar(c)) {
                spaceNum++;
            } else {
                otherNum++;
            }
        }
        System.out.println("大写英文字母个数: " + upperNum + " 小写英文字母个数: " + lowerNum + " 数字个数: " + digtaNum + " 空格个数:  "
                + spaceNum + " 其他字符个数:  " + otherNum);
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目: 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 程序分析: 利用while语句,条件为...
    Hughman阅读 8,422评论 0 5
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 10,537评论 0 41
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,953评论 9 468
  • 【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子...
    Xplorist阅读 3,269评论 0 0
  • 目标:成功完成此次见面会与分享 结果:帮大家解决疑问,树立一个完好的形象,有利于后期的管理 障碍:可能会紧张 计划...
    高N少女阅读 702评论 0 0