精华内容
下载资源
问答
  • 本文实例讲述了python统计字符串中指定字符出现次数的方法。分享给大家供大家参考。具体如下: python统计字符串中指定字符出现次数,例如想统计字符串中空格的数量 s = "Count, the number of spaces." print s....
  • 统计字母出现次数

    千次阅读 2018-10-02 16:41:04
    * 一个counts[26]数组里面存放每个字母出现次数 * 刚好,chars[i]-'a'就对应counts数组的下标,检测到那个字母了就直接++ * * */ public class CountLettersInArray { public static void ma...
    /*统计字母个数
     * 方法:一个chars【100】数组里面存放随机生成的100个字母
     *     一个counts[26]数组里面存放每个字母出现的次数
     *     刚好,chars[i]-'a'就对应counts数组的下标,检测到那个字母了就直接++
     *  
     * */
    public class CountLettersInArray {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		char[] chars = createArray();
    		
    		System.out.println("The lowercase letters are: ");
    		displayArrays(chars);
    		
    		int[] counts = countLetters(chars);
    		System.out.println();
    		System.out.println(" The occurrences of each letter are:");
    		displayCounts(counts);
    	}
    	
    	public static char[] createArray() {                
    		char[] chars = new char [100];
    		
    		for(int i=0;i< chars.length;i++) {
    			chars[i] = RandomCharacter.getRandomLowerCaseLetter();     //调用另外一个类RandomCharacter里面的getRandomLowerCaseLetter方法
    		}
    		return chars;
    	}
    
    		
    
    	public static void displayArrays(char[] chars) {      //定义字符串输出格式
    		for(int i=0;i<chars.length;i++) {
    			if((i+1)%20 == 0) 
    				System.out.println(chars[i]);
    			else
    				System.out.print(chars[i]);
    		}
    	}
    	
    	public static int[] countLetters(char[] chars) {
    		int[] counts = new int[26];
    		
    		for(int i=0;i<chars.length;i++) {
    			counts[chars[i]-'a']++;               //counts数组用来记录对应字母出现的次数
    		}
    		return counts;
    	}
    	
    	public static void displayCounts(int[] counts) {     //输出
    		for(int i = 0 ; i < counts.length ; i++) {
    			if((i+1)%10 == 0) 
    				System.out.println(counts[i]+"-"+(char)(i+'a')+"  ");
    				else
    					System.out.print(counts[i]+"-"+(char)(i+'a')+"   ");
    			
    		}
    	}
    }
    
    class RandomCharacter {                                        //生成随机字符串的类
    		
    public static char getRandomLowerCaseLetter() {
    	return getRandomCharacter('a','z');
    }
    public static char getRandomCharacter(char ch1,char ch2) {
    	return (char)(ch1 + Math.random()*(ch2 - ch1 + 1));	
    }
    
    }
    
    
    
    展开全文
  • 自动统计文本中单词出现最多的单词
  • 词组自动提取统计工具,适用于统计文字词组出现的数量,比如淘宝标题词组出现的数量、TOP500关键词词根、唯品标题等等,用途可留言挖掘。谢谢。
  • 不管是自动化测试,还是测试开发,或者高级测试工程师,国内很多公司都开始要求编码能力。在各种面试中,经常会问到一些编程如何实现... 需要统计字母和字母出现次数,这个第一反应就想起了编程语言中的字典概念,字母

           不管是自动化测试,还是测试开发,或者高级测试工程师,国内很多公司都开始要求编码能力。在各种面试中,经常会问到一些编程如何实现的问题。本系列,专门记录一些面试中遇到的问题,主要是用Java来实现,后续如果有精力,会更新Python实现方法。

    题目;给出一个字符串,统计出每个字母出现的次数。

    思路分析:

           需要统计字母和字母出现次数,这个第一反应就想起了编程语言中的字典概念,字母就相当于字典中的key,字母出现次数就是字典的value,而且字典要求key不能重复。这个编程题目打印的结果其实就是一个字典。第二个和key和value有关的概念就是map,和字典差不多。本题有两种解题方法,第一种是普通的数组,第二种就是map。两种方法,我们都需要掌握,先看看数组解法,然后看看map,之后对比,肯定是map的代码更少,效率更高。

    在开始采用数组解法之前,我们来通过以下步骤拆分,一步一步达到我们的目的,这样,才能掌握这个知识点。

    1.1   限制只有小写字母的情况

    数据举例,str=”abcab”

    核心实现思想:

    1)  创建一个int[] a类型数组,大写26,因为只有26个小写英文字母。例如a[0]表示字母a的出现次数,a[1]表示字母b的出现次数,依次类推….

    2)  依次取出每个字母,利用str.charAt(i)函数。Tmp作为临时取出字母。

    3)  从char数组(字符串本身就是一个特殊的char类型数组)索引为0开始和 tmp比较,记录索引位置。索引得到的方式是tem-‘a’,我们知道小写字母a对应的ascii码是数字97,大写A对应是数字65,因为都是小写字母,tem-97得到的值最小是0,这个0就存储到统计次数的数组a[0],这个时候,因为执行了tem-97,说明存在一个字母,相对于这个字母出现了一次,那么a[0]=a[0]+1。用str=”abcab”,举例,循环第一次是字母a,这个时候tem=a, 执行tem-97=0,那么统计a出现次数就是a[0]=a[0]+1,这个值等于1。等遍历到第四次位置,出现了第二个a,而且tem-97=0的,那么这个时候a[0]会继续加1,这个时候字母a就出现了两次。

    用Java代码实现

    package test;
    
    public class CharCount {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		// 只考虑全部小写
    		String str1 = "abca";
    		
    		int[] count = new int[26]; //用来存储小写字母a-z出现的次数。
    		
    		
    		for(int i=0; i<str1.length(); i++){
    			
    			char tmp = str1.charAt(i); //依次取出每个字母
    			int index = tmp - 97; //利用ascii码表,最小结果是0.
    			count[index] = count[index] + 1;
    		}
    		
    		//循环打印每个字母出现次数
    		for(int j=0; j<count.length; j++){
    			if(count[j]!=0)
    				System.out.println("字母"+(char)(j+97)+"出现次数:"+count[j]);
    		}
    		
    	}
    
    }

    输出结果:

    字母a出现次数:2
    字母b出现次数:1
    字母c出现次数:1


           为了测试一些其他情况,这里我们把str1="efeffhkkhgihwfwefhxfhhfnbbfeyfhkmadgfeifjfc",替换上面str1,运行结果。

    字母a出现次数:1
    字母b出现次数:2
    字母c出现次数:1
    字母d出现次数:1
    字母e出现次数:5
    字母f出现次数:12
    字母g出现次数:2
    字母h出现次数:7
    字母i出现次数:2
    字母j出现次数:1
    字母k出现次数:3
    字母m出现次数:1
    字母n出现次数:1
    字母w出现次数:2
    字母x出现次数:1
    字母y出现次数:1

    1.2   限制只有大写字母的情况
    大写字母是A到Z,A对象的ascii码表是65,参照小写字母统计实现方法,大写字母统计相关实现代码如下。

    package test;
    
    public class CharCount {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		// 只考虑全部大写
    		String str1 = "ABCBAFRIJGHEGJEEFEJDGJLKKOPOPXDNMH";
    		
    		int[] count = new int[26]; //用来存储字母A-Z出现的次数。
    		
    		
    		for(int i=0; i<str1.length(); i++){
    			
    			char tmp = str1.charAt(i); //依次取出每个字母
    			int index = tmp - 65; //利用ascii码表,最小结果是0.
    			count[index] = count[index] + 1;
    		}
    		
    		//循环打印每个字母出现次数
    		for(int j=0; j<count.length; j++){
    			if(count[j]!=0)
    				System.out.println("字母"+(char)(j+65)+"出现次数:"+count[j]);
    		}
    		
    	}
    
    }

    运行结果:

    字母A出现次数:2
    字母B出现次数:2
    字母C出现次数:1
    字母D出现次数:2
    字母E出现次数:4
    字母F出现次数:2
    字母G出现次数:3
    字母H出现次数:2
    字母I出现次数:1
    字母J出现次数:4
    字母K出现次数:2
    字母L出现次数:1
    字母M出现次数:1
    字母N出现次数:1
    字母O出现次数:2
    字母P出现次数:2
    字母R出现次数:1
    字母X出现次数:1

    1.3 不限制大小写字母
           因为题目,没有限制大小写的字母,甚至输入其他键盘上存在的键盘或者数字。这次,我们依然只关注大写和小
    写字母,其他字符不管。核心思路就是,先判断是否是字母,如果是字母,就执行上面的统计方法。


    package test;
    
    public class CharCount {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		// 只考虑全部小写
    		String str1 = "ABdgeIJkdj";
    		
    		int[] count = new int[52]; //用来存储字母a-z A-Z出现的次数。
    		
    		
    		for(int i=0; i<str1.length(); i++){
    			
    			char tmp = str1.charAt(i); //依次取出每个字母
    			if((tmp>=65&& tmp<=90)||(tmp>=97&& tmp<=122)){
    				
    				int index = tmp - 65; //利用ascii码表,最小结果是0.
    				count[index] = count[index] + 1;
    			}
    		}
    		
    		//循环打印每个字母出现次数
    		for(int j=0; j<count.length; j++){
    			if(count[j]!=0)
    				System.out.println("字母"+(char)(j+65)+"出现次数:"+count[j]);
    		}
    		
    	}
    
    }

    运行结果

    字母A出现次数:1
    字母B出现次数:1
    字母I出现次数:1
    字母J出现次数:1
    字母d出现次数:2
    字母e出现次数:1
    字母g出现次数:1
    字母j出现次数:1
    字母k出现次数:1

    1.4 用map实现

    package test;
    
    import java.util.Map;
    import java.util.TreeMap;
    
    public class CharCount {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		// 只考虑全部小写
    		String str1 = "ADHfggegJKEFdjiwDdgrgrgfGgrgrRd";
    		
    		//用map实现
    		TreeMap<Character,Integer> map = new TreeMap<Character,Integer>();
    		
    		for(Character ch: str1.toCharArray()){
    			
    			//判断是否为字母,其他符号不考虑统计
    			if( (ch>='a'&& ch<='z')|| (ch>='A'&&ch<='Z') ){
    				
    				Integer count = map.get(ch);
    				map.put(ch, null==count?1:count+1);
    			}
    		}
    		//遍历map
    		for(Map.Entry<Character, Integer> enter: map.entrySet()){
    			
    			System.out.println("字母:"+enter.getKey() +"出现次数:"+enter.getValue());
    			
    		}
    	}
    
    }

    运行结果

    字母:A出现次数:1
    字母:D出现次数:2
    字母:E出现次数:1
    字母:F出现次数:1
    字母:G出现次数:1
    字母:H出现次数:1
    字母:J出现次数:1
    字母:K出现次数:1
    字母:R出现次数:1

    1.5 分别统计英文字母,空格,数字和其他字符出现次数
    这里变化一下需求,分别统计英文字母,数字,空格和其他字符统计次数。


    package test;
    
    public class CharCount {
    
    	public static void main(String[] args) {
    		
    		String str1 = "df dADF 23ad 8D35A HELLworld #$^&*";
    		
    		int charCount = 0;
    		int numberCount = 0;
    		int blankCount = 0;
    		int otherCount = 0;
    		
    		for(int i=0; i<str1.length(); i++){
    			
    			char tmp = str1.charAt(i);
    			
    			if((tmp>='a'&&tmp<='z')||(tmp>='A'&&tmp<='Z')){
    				charCount++;
    			}
    			//主要不要写成tmp>0,这里是ascii码表比较
    			else if(tmp>='0' && tmp<='9'){
    				numberCount++;
    			}
    			else if(tmp==' '){
    				blankCount++;
    			}
    			else{
    				otherCount++;
    			}
    		}
    		
    		System.out.println("英文字母出现次数:" +charCount);
    		System.out.println("数字出现次数:" +numberCount);
    		System.out.println("空格出现次数:" +blankCount);
    		System.out.println("其他字符出现次数:" +otherCount);
    	}
    
    }

    运行结果

    英文字母出现次数:19
    数字出现次数:5
    空格出现次数:5
    其他字符出现次数:5


    总结:
           关于字符统计的编程,掌握了以上方法应该是足够了。这里,你可以试试用Python语言写,或者用shell写,记得之前面试,关于shell这块,有人问要用shell脚本语言实现,没办法,shell语法还不如java语法掌握得好,回答不上来。








    展开全文
  • 打开需要统计数据的Excel表格。 点开菜单栏的“插入”;... 操作完上一步后,可以看到“请选择单元格区域”下有一个闪动的光标;先选好需要统计的数据区域(需要注意的是:这里...在新的工作表的右侧出现了数据透视表相

    打开需要统计数据的Excel表格。

    Excel怎么快速统计一列中相同数据出现的次数

    点开菜单栏的“插入”;再点击一下“数据透视表”。

    Excel怎么快速统计一列中相同数据出现的次数

    操作完上一步后,可以看到“请选择单元格区域”下有一个闪动的光标;先选好需要统计的数据区域(需要注意的是:这里也要把“语文”这个单元格也选中,大家可以理解这个单元格是为了介绍说明选中的数据)(选完数据区域后的效果如图1-3-2所示)

    Excel怎么快速统计一列中相同数据出现的次数

    Excel怎么快速统计一列中相同数据出现的次数

    为了不干扰原来的数据(毕竟很多时候表格里的数据都是数值,容易混淆),这里选择在“新工作表”中放置数据透视表(统计的数值);然后再点击“确定”按钮。

    Excel怎么快速统计一列中相同数据出现的次数

    在新的工作表的右侧出现了数据透视表相关的选项,这里把字段列表的“语文”拖动到“行”和“值”里(拖动两次)。(拖动后的效果如图1-5-2所示)

    Excel怎么快速统计一列中相同数据出现的次数

    Excel怎么快速统计一列中相同数据出现的次数

    执行完上面的步骤之后,如何快速统计一列中相同数据出现的次数的操作就完成了。(示例完成的是“语文”这一列中不同成绩阶段的人数统计。如图所示)

    Excel怎么快速统计一列中相同数据出现的次数
    用Countif函数实现相同数据出现次数的统计
    方法二中我们用函数来完成:先打开需要统计的表格。
    将语文这一列(B列)的数据复制到C列。(如图所示)

    Excel怎么快速统计一列中相同数据出现的次数

    点击菜单栏的“数据”;再点击一下“删除重复项”按钮。

    Excel怎么快速统计一列中相同数据出现的次数

    在弹出的警告窗口中选择“当前选定区域”;然后再点击“删除重复项”。

    Excel怎么快速统计一列中相同数据出现的次数

    在删除重复项的确认窗口中,点击“删除重复项”。在弹出的提示窗口中,我们点击一下“确定”按钮。

    Excel怎么快速统计一列中相同数据出现的次数

    Excel怎么快速统计一列中相同数据出现的次数

    接下来,在单元格D2中输入“=COUNTIF(B:B,C2)”(数据统计函数,目的是这里是统计指定的B列中包含C2单元格的数据个数,即:语文成绩“及格”的人数)。

    Excel怎么快速统计一列中相同数据出现的次数

    将鼠标移到单元格D2的右下角,等出现了“+”后下拉填充单元格。

    Excel怎么快速统计一列中相同数据出现的次数

    执行完上一步,可以发现数据已经统计好了。Excel中快速统计一列中相同数据出现的次数的操作就完成了。(如图所示)

    Excel怎么快速统计一列中相同数据出现的次数

    展开全文
  • 统计文件中的所有字符串出现次数,在行尾未完的字符用"-"连接,c语言编写,包括"rdline.c","abc",编译"rdline.c"后直接,运行就行,不要加参数,会自动读取"abc"中的内容。
  • python 统计词在文档中的出现次数

    千次阅读 2020-03-04 14:09:10
    import re doc = "马铃薯有抗氧化抗衰老防衰老的作用" count = len(re.findall("衰老", doc)) print(count) print结果: 2
    import re
    doc = "马铃薯有抗氧化抗衰老防衰老的作用"
    count = len(re.findall("衰老", doc))
    print(count)
    

    print结果:
    2

    展开全文
  • 下面的内容为自动统计的工具, 如果需要公式,请在地址:www.excelfb.com点击:Excel自动写公式工具(根据汉字描述写公式,支持合并单元格公式) 一、如果是统计某列或某几列相同的行重复数统计使...
  • 统计文件中每个单词的出现次数

    千次阅读 2016-02-18 16:44:40
    统计文件中每个单次的出现次数是C语言经典案例之一,当然如果你对shell编程比较精通的话,也可以直接用shell语句统计出来。 本文阐述的是用C语言实现单词统计,应用的数据结构为二叉树,所以需要读者十分了解二叉树...
  • 利用网页访问实现软件自动统计打开次数,简单明了。大神勿喷!
  • 考勤记录管理系统(自动统计)考勤记录管理系统(自动统计)考勤记录管理系统(自动统计
  • cat file|sort|uniq -c|sort -...是将排序结果反转,最终达到的效果就是统计每行出现次数,按出现次数的大小降序排序,对统计URL出现次数很有帮助,可以看到系统中的热点请求。 在此小记一下,防止以后忘记了。
  • 统计一个文本中,出现次数最多的单词:单词全部小写,单词与单词之间以空格间隔 1.利用字典 key为单词 value为单词出现次数 def mostString(): dict = {} fr = open('preprocessing.txt') k = 0 n = 0 ...
  • 统计某个字符出现次数,本示例是统计逗号出现次数: 由于照片字段是支持上传多张照片的,上传多张后会自动用逗号隔开,所以思路是数逗号出现次数达到计数的目的。 select id, length(ca.photo) - length...
  • * 统计出现次数最多的单词和它出现次数 * @author ZHR */ public class CountWord { public static String [] strTostrArray(String str) { /* * 将非字母字符全部替换为空格字符" " * 得到一个
  • 统计数组中各元素出现次数

    万次阅读 2017-03-20 15:27:25
     给定一大小为N的整数数组,其元素取值范围为[1,N],请统计各元素出现次数,并要求时间复杂度为O(n),空间复杂度为O(1)。 2.思路  若没有空间的限制,则可直接开辟一个大小等于元素最大值的数组对各元素进行...
  • 统计String中每个单词出现的个数(不区分大小写) 输入描述:输入一个字符串,例如:“a b A v” 输出描述: v:1 :3 b:1 a:2 def countEach(strs) : dic = {} strs = strs.lower() lens = len(strs) i = 0 ...
  • 当excel里有一堆乱序的名称放在我们面前时,要求我们统计出每个名称出现了多少次,并按照从大到小的顺序排列起来,该如何快速做到呢?利用数据透视表即可快速完成. 1.打开数据表,选中要统计的数据,点开“插入”,...
  • Python 中文词频统计 | 查找文本中某词出现次数

    千次阅读 多人点赞 2020-03-14 20:25:15
    import jieba txt = open(...jiebafenci(txt,find) 首先安装jieba库,打开Anaconda Prompt (或其他编辑器)输入pip install jieba tingcibiao.txt 文件内容如下图(停词表另有含义,此处为不规范命名) : 统计结果为
  • 首先以只读方式打开单词文件,利用列表推导式创建两个列表 列表sta记录各单词出现次数,列表freq记录各单词出现的频率
  • * 统计文章中出现次数最多的中文汉字或英文单词 * * 调用参数说明: * String str 需要统计的文章 * int index 需要返回的最多的前几个 * return 返回值为一个字符串数组,数组中字符起始数字就是该汉字...
  • 实际工作中遇到一个问题,需要统计日志中某个字符串出现次数。日志按小时切割。所以一个个查看效率太低了。想起之前同事推荐过一个命令特意请教了一下。做个笔记,也希望能帮助有需要的朋友 [root@izbp14jx1zymn6...
  • java统计中文字符出现次数

    千次阅读 2015-12-04 12:34:49
    统计文件poem.txt中"春、天、水、花"四个字符出现次数。 代码: import java.io.*; import java.util.Arrays; public class StringTest{ public static void main(String[] args)throws IOException{ String ...
  • 统计该字符串中每个字符出现次数,输出: a====5 b====3 c====1 d====1 e====1 f====1 g====1 h====1 方法一: 采用HashMap public static void count(String str){ //将字符...
  • select 列名, count(*) from 表名 group by 列名 order by count(*) desc;
  • # 这种方法建立字典,会把列表里的元素当做字典的键,由于字典的键不能重复,所以会自动去重 for i in dic_num . keys ( ) : print ( '%s--数量%d' % ( i , num . count ( i ) ) ) 用append()方法把...
  • package test; public class Test{ public static void ... System.out.printf("自动投掷色子1000次投掷后,各点值的出现次数:\n"); int m; int score[][]= {{1,0},{2,0},{3,0},{4,0},{5,0},{6,0}};/...
  • 统计数组(或者向量)中各元素出现次数 # include int main ( void ) { int i ; int a [ ] = { 1 , 2 , 3 , 4 , 5 , 5 , 5 } ; map < int , int > m ; for ( i ...
  • 设计思路: 1.为了统计数据具有实际意义: 统计中需要剔除一些无统计意义的词,例如 am is are ...①为了应对文章总词数较少(几十个词)造成大多数单词仅仅只出现一次的情况,程序选取出现频率高于5%的词不论文章总

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 155,208
精华内容 62,083
关键字:

如何自动统计出现次数