获取字符串中的数字、符号、中文、英文单词、字母、空格、字节、其他字符的个数

本文主要是介绍获取字符串中的数字、符号、中文、英文单词、字母、空格、字节、其他字符的个数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

获取字符串中的数字、符号、中文、英文单词、字母、空格、字节、其他字符的个数

转载
标签: 

it

分类: java

//英文单词:根据正则获取
        private static int GetWordCountByRegular(string str)
        {
            //统计英文单词个数
            Regex re = new Regex(@"\b\w+\b");
            MatchCollection ma = re.Matches(str);
            return ma.Count;
        }


        //数字
        public static int GetNumberCount(string str)
        {
            int count = 0;
            for (int i = 0; i < str.Length; i++)
            {
                if (str[i] != '\0')
                {
                    if (str[i] >= '0' && str[i] <= '9')
                    {
                        count++;
                    }
                }
            }
            return count;
        }

        //字母
        public static int GetLetterCount(string str)
        {
            int count = 0;
            for (int i = 0; i < str.Length; i++)
            {
                if (str[i] != '\0')
                {
                    if (((str[i] >= 'a' && str[i] <= 'z')) || ((str[i] >= 'A' && str[i] <= 'Z')))
                    {
                        count++;
                    }
                }
            }
            return count;
        }

        //中文字符
        public static int GetChineseCount(String str)
        {
            //中文个数=字节数-字符数
            return Encoding.GetEncoding("gb2312").GetBytes(str).Length - str.Length;
        }

        //中文字符:根据Unicode编码范围
        private static int GetChineseCountByUnicode(string str)
        {
            int count = 0;

            for (int i = 0; i < str.Length; i++)
            {
                if (str[i] >= 0X4e00 && str[i] <= 0X9fa5)
                {
                    count++;
                }
            }
            return count;
        }

        //中文字符:根据正则获取
        private static int GetChineseCountByRegular(String str)
        {
            Regex re = new Regex("[\u4e00-\u9fa5]");
            MatchCollection ma = re.Matches(str);
            return ma.Count;
        }

        //空格
        public static int GetSpaceCount(String str)
        {
            int count = 0;
            foreach (char ch in str)
            {
                if (ch == 32) //ASCII编码:32为空格符.当然你也可以判断空字符:ch==' '
                {
                    count++;
                }
            }

            return count;
        }

        //标点符号
        public static int GetSymbolCount(String str)
        {
            //ASCII编码中的符号范围:32-47、58-64、91-96、123-126
            int count = 0;
            foreach (char ch in str)
            {
                if ((ch >= 32 && ch <= 47) || (ch >= 58 && ch <= 64) || (ch >= 91 && ch <= 96) || (ch >= 123 && ch <= 126))
                {
                    count++;
                }
            }

            return count;
        }

        //其他字符
        public static int GetOtherCount(String str)
        {
            return str.Length - GetNumberCount(str) - GetLetterCount(str) - GetChineseCount(str)
                - GetSpaceCount(str) - GetSymbolCount(str);
        }

        //字节
        public static int GetByteCount(String str)
        {
            return Encoding.Default.GetBytes(str).Length;
        }

这篇关于获取字符串中的数字、符号、中文、英文单词、字母、空格、字节、其他字符的个数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/973442

相关文章

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

C#中字符串分割的多种方式

《C#中字符串分割的多种方式》在C#编程语言中,字符串处理是日常开发中不可或缺的一部分,字符串分割是处理文本数据时常用的操作,它允许我们将一个长字符串分解成多个子字符串,本文给大家介绍了C#中字符串分... 目录1. 使用 string.Split2. 使用正则表达式 (Regex.Split)3. 使用

python获取当前文件和目录路径的方法详解

《python获取当前文件和目录路径的方法详解》:本文主要介绍Python中获取当前文件路径和目录的方法,包括使用__file__关键字、os.path.abspath、os.path.realp... 目录1、获取当前文件路径2、获取当前文件所在目录3、os.path.abspath和os.path.re

Java子线程无法获取Attributes的解决方法(最新推荐)

《Java子线程无法获取Attributes的解决方法(最新推荐)》在Java多线程编程中,子线程无法直接获取主线程设置的Attributes是一个常见问题,本文探讨了这一问题的原因,并提供了两种解决... 目录一、问题原因二、解决方案1. 直接传递数据2. 使用ThreadLocal(适用于线程独立数据)

Java中JSON字符串反序列化(动态泛型)

《Java中JSON字符串反序列化(动态泛型)》文章讨论了在定时任务中使用反射调用目标对象时处理动态参数的问题,通过将方法参数存储为JSON字符串并进行反序列化,可以实现动态调用,然而,这种方式容易导... 需求:定时任务扫描,反射调用目标对象,但是,方法的传参不是固定的。方案一:将方法参数存成jsON字

.NET利用C#字节流动态操作Excel文件

《.NET利用C#字节流动态操作Excel文件》在.NET开发中,通过字节流动态操作Excel文件提供了一种高效且灵活的方式处理数据,本文将演示如何在.NET平台使用C#通过字节流创建,读取,编辑及保... 目录用C#创建并保存Excel工作簿为字节流用C#通过字节流直接读取Excel文件数据用C#通过字节

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

spoj705( 求不相同的子串个数)

题意:求串s的不同子串的个数 解题思路:任何子串都是某个后缀的前缀,对n个后缀排序,求某个后缀的前缀的个数,减去height[i](第i个后缀与第i-1 个后缀有相同的height[i]个前缀)。 代码如下: #include<iostream>#include<algorithm>#include<stdio.h>#include<math.h>#include<cstrin