字符(字母、数字、中文字符)统计示例

本文给出一个字符统计的例子。给定一串字符,统计其中字母、数字、中文字符、空格以及其它字符的个数。

在编写程序之前,需要考虑一下,怎样判断一个字符是一个中文字符呢?

基本的 CJK 汉字的 Unicode 码范围是 U4E00~U9FBF, 虽然是还有扩展,但是一般使用这个范围去判断一个字符是否为中文字符已经足够了。所以判断一个字符是否为中文的方法如下:

public static boolean isChineseCharacter(char c) {
    return c >= ‘\u4E00‘ && c <= ‘\u9FBF‘;
}

至于判断一个字符是否为字母或者数字,我们只需调用Character类中的isLetterisDigit方法即可。

public class CharacterStatictics {

    public static void main(String[] args) {

        int chineseCharCount = 0;
        int spaceCount = 0;
        int digitCount = 0;
        int lettersCount = 0;
        int otherChars = 0;

        String value = "Hello world! Welcome to Java world! 1234567890 Java 字符统计个数小程序!";
        char[] chars = value.toCharArray();
        for (char c : chars) {
            if (isChineseCharacter(c)) {
                chineseCharCount++;
            } else if (Character.isLetter(c)) {
                lettersCount++;
            } else if (Character.isDigit(c)) {
                digitCount++;
            } else if (‘ ‘ == c) {
                spaceCount++;
            } else {
                otherChars++;
            }
        }

        System.out.println("中文字符:" + chineseCharCount);
        System.out.println("数字:" + digitCount);
        System.out.println("字母:" + lettersCount);
        System.out.println("空格:" + spaceCount);
        System.out.println("其它字符:" + otherChars);

    }

    private static boolean isChineseCharacter(char c) {
        return c >= ‘\u4E00‘ && c <= ‘\u9FBF‘;
    }

}
运行结果:

中文字符:9
数字:10
字母:32
空格:8
其它字符:3
时间: 2025-01-02 06:38:29

字符(字母、数字、中文字符)统计示例的相关文章

java面试题:如果一串字符如&quot;aaaabbc中国1512&quot;要分别统计英文字符的数量,中文字符的数量,和数字字符的数量,假设字符中没有中文字符、英文字符、数字字符之外的其他特殊字符。

package com.swift; public class TotalNumber_String { public static void main(String[] args) { /* * 如果一串字符如"aaaabbc中国1512"要分别统计英文字符的数量,中文字符的数量,和数字字符的数量, * 假设字符中没有中文字符.英文字符.数字字符之外的其他特殊字符. */ String str="aaaabbc中国1512"; int engishCount =

华为 2015 机试 输出:数字后面的连续出现的(2个或多个)相同字符(数字或者字符),删去一个,非数字后面的不要删除,例如,对应输出为:33aabb55pin。

1 package 华为机试; 2 //C++ 输入:由数字和字母组成的字符串,例如:333aaabb55ppin 3 //输出:数字后面的连续出现的(2个或多个)相同字符(数字或者字符),删去一个,非数字后面的不要删除,例如,对应输出为:33aabb55pin. 4 5 //这句话的核心就是在字符串删除一些字符,感觉处理很复杂,删除哪些字符呢?我们观察发现, 本字符串中删除了一个3,一个a,一个p,满足的规则是啥呢? 333中删除最后一个3,3aa删除了一个a,5pp中删除一个p, 6 //规

Fastdb 之中文字符截取错误的问题

Fastdb C#版本中,如果定义字段类型为  CLI.FieldType.cli_asciiz,使用的过程中插入中文字符集会出现乱码的情况, 追查code发现是在对字符串缓冲区CopyBufferData的过程中直接fastdb直接使用了s.length获取了字符个数,而不是获取字节数,由于中文占位两个字节,所以导致数据copy不全,从而出现乱码. 不多说,修正代码如下: protected int bytelengh(string str) { //使用Unicode编码的方式将字符串转换为

输入一串只含有中文、英文和数字的字符串,统计其中中文字符、英文字符和数字字符各有多少个?

public class StatisticZEN { public static void main(String[] args) { String str = "中国aadf的111萨bbb菲的zz萨菲"; statisticsChar(str); } private static HashMap<String, Integer> statisticsChar(String str) { int chineseCount = 0; int englishCount =

java小练习:输入一个字符,判断该字符是数字?英文字母?还是其他字符

package practiceGO; import java.util.Scanner; /*  * 3.输入一个字符,判断该字符是数字?英文字母?还是其他字符  */ public class Cto { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("输入一个字符:"); char ch = sc.next().charAt(0);

php获取中文字符拼音首字母

//php获取中文字符拼音首字母 function getFirstCharter($str){ if(empty($str)){ return ''; } $fchar = ord($str{0}); if($fchar >= ord('A') && $fchar <= ord('z')){ return strtoupper($str{0}); } $s1=iconv('UTF-8','gb2312',$str); $s2=iconv('gb2312','UTF-8',$s

PHP解码unicode编码中文字符代码示例

在抓取某网站数据,结果在数据包中发现了一串编码的数据:"......\u65b0\u6d6a\u5fae\u535a......", 这其实是中文被unicode编码后了的数据,想解码出中文来.解决方案:方案A(稳定版+推荐): function replace_unicode_escape_sequence($match) { return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE'); } $name

字符单链表识别数字,字母,其它字符,并分为三个循环链表的算法c++实现

已知一个单链表中的数据元素含有三类字符(即字母字符,数字字符和其它字符),试编写算法,构造三个循环链表,使每个循环链表中只含有同一类的字符,且利用原表中的结点空间作为这三个表的结点空间. 实现源代码: #include<iostream> #include<stdio.h> #include<string.h> using namespace std; struct node { char ch; node*link; }; //为了方便输出,定义一个输出字符的函数,适

android 4.4.3上面,联系人的头像默认显示首字母,但是不支持中文字符,修改支持中文

在android 4.4.3上面,联系人的头像默认显示首字母,但是不支持中文字符,如下图: 如果联系人名字的第一位是英文字符(a-z || A-Z),则默认头像将显示该首字母. 如果支持中文时显示第一个汉字,那就happy了. 那就看看如何通过修改源代码来实现这一小功能吧- 我们还是先了解下联系人头像加载的流程吧- 联系人头像加载这个问题还是很有意思的,在Contacts中使用ContactPhotoManager类(严格来讲是这个类的子类)来实现头像的异步加载. 这个类还使用了LruCache