统计输入任意字符串中字符的个数

 1 import java.util.ArrayList;
 2 import java.util.HashSet;
 3 import java.util.Iterator;
 4 import java.util.List;
 5 import java.util.Set;
 6
 7 /**
 8  *
 9  * @author trfizeng
10  */
11 public class CountStr {
12
13     //统计任意字符串出现的次数
14     public static List<String> countStr(String str) {
15         //用于存放生成要检测的字符串的字典
16         Set<String> base = new HashSet<String>();
17         //用于存放输入的字符串的每个字符
18         List<String> totalStr = new ArrayList<String>();
19         //用于存放每个字符出现的次数
20         List<String> couList = new ArrayList<String>();
21         //把字符串转化为字符数组
22         char [] tempChar = str.toCharArray();
23
24         //初始化字典和要统计的字符
25         for (int i = 0; i < tempChar.length; i++) {
26             base.add(tempChar[i]+"");
27             totalStr.add(tempChar[i]+"");
28         }
29
30         Iterator<String> it = base.iterator();
31         //初始化每个字符出现的次数
32         while (it.hasNext()) {
33             String string = (String) it.next();
34             couList.add(string + ":" + 0);
35         }
36
37         //用于计数每个字符出现的次数
38         int c = 0;
39         //开始遍历
40         for (int i = 0; i < totalStr.size(); i++) {
41             String tC = totalStr.get(i);
42             Iterator<String> ite = base.iterator();
43             while (ite.hasNext()) {
44                 String obj = ite.next();
45                     //判断字符是否出现
46                     if (tC.equals(obj)) {
47                         for (int j = 0; j < couList.size(); j++) {
48                             String cL = couList.get(j);
49                             if (cL.startsWith(obj)) {
50                                 //把原来出现的次数拿出来+1
51                                 c = Integer.parseInt(cL.substring(cL.lastIndexOf(":")+1,cL.length()));
52                                 c++;
53                                 //从新设置出现的次数
54                                 couList.set(j, obj + ":" + (c));
55                             }
56                         }
57                     }
58             }
59         }
60         return couList;
61     }
62
63     public static void main(String[] args) {
64         String testStr = "dfe:RRxc.:./哈哈有:";
65         List<String> cList = countStr(testStr);
66         for (int i = 0; i < cList.size(); i++) {
67             System.out.print(cList.get(i) + "  ");
68         }
69          /*
70             *
71             char []c=testStr.toCharArray();
72             Map<String,Integer> m=new HashMap<String, Integer>();
73             for(int i=0;i<c.length;i++){
74                 String cstr=String.valueOf(c[i]);
75                 if(null!=m.get(cstr)){
76                     int count=m.get(cstr);
77                     m.put(cstr, count+1);
78                 }else{
79                     m.put(cstr,1);
80                 }
81             }
82
83             */
84     }
85 }

d:1  /:1  R:2  ::3  c:1  哈:2  f:1  .:2  x:1  有:1  e:1

时间: 2024-10-17 23:24:52

统计输入任意字符串中字符的个数的相关文章

字符串中字符的个数和字符序列

题目 输出上次字符串中字符的个数和字符 最终的序列如下: 1, 11, 21, 1211, 111221, ... n=1时,输出字符串"1" n=2时,输出上次字符串中字符的个数和字符,因为上次字符串有1个1,所以输出11 n=3时,由于上次字符是11,有2个1,所以输出21 n=4时,由于上次字符串是21,有1个2和1个1,所以输出1211 依次类推,写个countAndSay(n)函数返回字符串. 参考代码 class Solution { public: string getN

java统计字符串中字符及子字符串个数

import java.util.Scanner;public class Counter { static Scanner scanner = new Scanner(System.in); public static void count(String s) { int low, upper, num, others; low = upper = num = others = 0; for (int i = 0; i < s.length(); i++) { if (Character.is

字符串之“统计一个字符串中单词的个数”

题目:统计一个字符串中单词的个数 输入一行字符,统计其中有多少个单词,单词之间用空格分隔开 输入:my name is jacky 输出:the number of word is 4 代码如下: #include <stdio.h> int main(int argc, char *argv[]) { char str[80]; int i=0,num=0,flag=0; char c; gets(str); while((c=str[i])!='\0') { if(c==' ') flag

统计字符串中汉字的个数

字符串可以包括数字.字母.汉字或者其他字符.使用Charater类的isDigit()方法可以判断字符串中的某个字符是否为数字, 使用Character类的isLetter()方法可以判断字符串中的某个字符是否为字母. 本案例将介绍用"正则表达式"来判断字符串中的某个字符是否为汉字,并统计该字符串中汉字的数量. 关键技术: Java中提供Pattern用于正则表达式的编译方式,该类的静态方法matches()可以执行正则表达式的匹配.该方法的声明如下: public static bo

学c语言做练习之?统计文件中字符的个数

统计文件中字符的个数(采用命令行参数) #include<stdio.h> #include<stdlib.h> int main(int argc, char *argv[]) {  char ch;  FILE *fp;  long count=0;    if(argc !=2)  {   printf("文件名是:%s\n",argv[0]);   exit(EXIT_FAILURE);  }  if ((fp=fopen(argv[1],"r

【华为OJ平台练习题】统计一段字符串中含有空格、英文、数字的个数

//统计一段字符串中含有空格.英文.数字的个数 #include <iostream> using namespace std; void processString(char* s) { int n = strlen(s); int kg=0; int shuzi=0; int yingwen=0; if(n>0) { for(int a=0;a<n;a++) { if(s[a]==' ') kg++; if(s[a]<='9'&&s[a]>='0')

问题 C: c#统计字符串中数字字符的个数

题目描述 假设有一个GetNumber方法(参数为字符串strSource),编写一个静态方法可以用来统计字符串strSource中数字字符的个数. 输入 输入一个字符串strSource 输出 strSource字符串中数字字符的个数 样例输入 .wrapper {position: relative;} #input {position: absolute;top: 0;left: 0;opacity: 0;z-index: -10;} copy asffkl8asjkfjklas3jdf9

技巧之C#统计字符串中字符出现的次数(转)

方法1.自定义类 class CharNum { private char c; private int num; public char C { get { return c; } } public int Num { get { return num; } set { num = value; } } public CharNum(char ch) { this.c = ch; this.num = 1; } } static void Main(string[] args) { /* */

java怎么实现统计一个字符串中字符出现的次数

问题:假设字符串仅仅保护a-z 的字母,java怎么实现统计一个字符串中字符出现的次数?而且,如果压缩后的字符数不小于原始字符数,则返回. 处理逻辑:首先拆分字符串,以拆分出的字符为key,以字符出现次数为value,存入Map中. 源码如下: 1 import java.util.HashMap; 2 import java.util.Iterator; 3 import java.util.Map; 4 5 public class TestCompress { 6 7 public sta