架构师

您现在的位置是:首页 > 工作面试 > 初级面试

初级面试

Java面试宝典_基础编程练习题_字符类型统计

架构师小跟班 2019-07-12 初级面试
题目题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。程序分析:利用while语句,条件为输入的字符不为'\n'.代码/** * @author :xy.hero@qq.com

题目

题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
程序分析:利用while语句,条件为输入的字符不为'\n'.

代码

/**
 * @author :xy.hero@qq.com
 * @date :Created in 2019-07-12 13:13
 * @description:www.jiagou1216.com
 * @modified By:
 * @version: $
 */
public class Test {
    public static void main(String[] args) {
        System.out.print("请输入一串字符:");
        Scanner scan = new Scanner(System.in);
        //将一行字符转化为字符串
        String str = scan.nextLine();
        scan.close();
        count(str);
    }

    //统计输入的字符数
    private static void count(String str) {
        String E1 = "[\u4e00-\u9fa5]";//汉字
        String E2 = "[a-zA-Z]";//字母
        String E3 = "[0-9]";//数字
        String E4 = "\\s";//空格
        int countChinese = 0;
        int countLetter = 0;
        int countNumber = 0;
        int countSpace = 0;
        int countOther = 0;
        //将字符串转化为字符数组
        char[] array_Char = str.toCharArray();
        //汉字只能作为字符串处理
        String[] array_String = new String[array_Char.length];
        for (int i = 0; i < array_Char.length; i++)
            array_String[i] = String.valueOf(array_Char[i]);
        //遍历字符串数组中的元素
        for (String s : array_String) {
            if (s.matches(E1))
                countChinese++;
            else if (s.matches(E2))
                countLetter++;
            else if (s.matches(E3))
                countNumber++;
            else if (s.matches(E4))
                countSpace++;
            else
                countOther++;
        }
        System.out.println("输入的汉字个数:" + countChinese);
        System.out.println("输入的字母个数:" + countLetter);
        System.out.println("输入的数字个数:" + countNumber);
        System.out.println("输入的空格个数:" + countSpace);
        System.out.println("输入的其它字符个数:" + countSpace);
    }
}

输出

请输入一串字符:asdfas汉字asdf 232汉字
输入的汉字个数:4
输入的字母个数:10
输入的数字个数:3
输入的空格个数:1
输入的其它字符个数:1

文章评论