美文网首页基础编程50题
【题目07】统计字符串的中各字符类型个数

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

作者: Xplorist | 来源:发表于2017-03-25 15:19 被阅读68次

【程序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);
    }
}

相关文章

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

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

  • 434-字符串中的单词书

    字符串中的单词数 题目 统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。 请注意,你可以假定字符串里...

  • 自动化测试常见面试题

    一、Python基础 Python有哪些数据类型 统计字符串 "test aa" 中字符 “t” 出现的个数和位置...

  • 遍历字符串字符

    题目:读取文本文档中的字符串,并统计出字符串中字符'a'的个数:代码如下: 这里遇到的问题是,我直接去遍历读取的字...

  • Leetcode 434. 字符串中的单词数

    题目 统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。 请注意,你可以假定字符串里不包括任何不可打印...

  • 「704. 二分查找 」| leetcode 刷题009

    题目1 统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。 请注意,你可以假定字符串里不包括任何不可打...

  • 笔试面试 | 扒一扒笔试面试中的编程题

    ©一颗斯特拉 1.字符串的排序和次数统计(3月25日) 题目:统计字符串中各字母数,例如abbbe,则输出a1b3...

  • python实现:统计字符串中,各个字符的个数

    要求: 统计字符串中,各个字符串的个数,并将其结果使用字典存储; 比如:"hello world"字符串统计结果为...

  • 字符统计

    题目描述 输入一个只包含小写英文字母和数字的字符串,按照不同字符统计个数由多到少输出统计结果,如果统计的个数相同,...

  • 根据字符出现频率排序

    题目: 统计字符串中各字母(区分大小写)出现的频度并按字母在字符串中出现的次数从大到小排序。 代码: #inclu...

网友评论

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

    本文链接:https://www.haomeiwen.com/subject/tyscottx.html