想了一种字符替换的方法,然后比对前后字符串的长度,达到统计指定字符个数的目的。

public class CalcCharTest {public static void main(String[] args) {String str = "13143948543879847234982123erwefeeeeefwafegegregfweafreg";// 方法1long startTime = System.currentTimeMillis();int num = calcNum1(str, "2");System.out.println(num + "-Method 1 :"+ (System.currentTimeMillis() - startTime));// 方法2long startTime2 = System.currentTimeMillis();int stringNum = calcNum2(str, "2");System.out.println(stringNum + "-Method 2 :"+ (System.currentTimeMillis() - startTime2));}/*** 统计指定字符个数1* @param str* @param statStr 统计的字符* @return*/public static int calcNum1(String str, String statStr){if (str == null || str.indexOf(statStr)==-1) {return 0;}String after = str.replaceAll(statStr, "");return str.length() - after.length();}/*** 统计指定字符个数2* @param str* @param statStr 统计的字符* @return*/public static int calcNum2(String str, String statStr) {if (str == null || str.indexOf(statStr)==-1) {return 0;}int counter = 0;String[] split = str.split("");for(String s : split) {if (s.equals(statStr)) {counter++;}}return counter;}}

方法一实质是正则匹配,源码如下:

public String replaceAll(String regex, String replacement) {return Pattern.compile(regex).matcher(this).replaceAll(replacement);
}// java.util.regex.Matcher#replaceAll
public String replaceAll(String replacement) {reset();boolean result = find();if (result) {StringBuffer sb = new StringBuffer();do {appendReplacement(sb, replacement);result = find();} while (result);appendTail(sb);return sb.toString();}return text.toString();}

总体来说,第一种方法比第二种循环比对的方法高效点。


统计字符串中含指定字符个数相关推荐

  1. 数据结构源码笔记(C语言):统计字符串中出现的字符及其次数

    //统计一个字符串中出现的字符及其次数 #include<stdio.h> #include<malloc.h> #include<string.h>#define ...

  2. 删除字符串中的指定字符

    题目 习题8-6 删除字符 (20 分) 本题要求实现一个删除字符串中的指定字符的简单函数. 函数接口定义: void delchar( char *str, char c ); 其中char *st ...

  3. 在字符串中查找指定字符

    10-1. 在字符串中查找指定字符(15) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 白洪欢(浙江大学) 输入一个字符串S,再输 ...

  4. C小程序——统计字符串中出现指定串abcd的次数

    #include "stdio.h" #include "string.h" #include <stdlib.h> //统计字符串中出现指定串ab ...

  5. mysql更新 在字符串中的指定字符后面拼接字符串

    mysql替换字符串中的指定字符 REPLACE()函数 -替换字符串的指定字符 UPDATE `表名` set `字段`=REPLACE( `字段`,'要被替换字符串的指定字符','替换后的指定字符 ...

  6. 统计字符串中每种字符类型的个数demo

    /** 统计字符串中每中字符类型的个数,思路:* 1.键盘录入一个字符串* 2.获取到每个字符,遍历字符串* for (int i = 0; i < s.length(); i++) {char ...

  7. 统计字符串中元音字母的个数 C语言编程,统计字符串中各元音字母(即A,E,I,O,U)的个数。...

    下列给定函数中,函数fun的功能是:统计字符串中各元音字母(即A,E,I,O,U)的个数.注意:字母不分大小写.例如,输入THIs is a boot,则应输出是1 0 2 2 0. 请改正程序中的错 ...

  8. 使用指针统计字符串中的数字字符的个数

    <程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p92 5.1.2 上级实训内容 [实训内容6]统计字符串中的数字字符,如字符串中的内容是 2def35 ...

  9. c++string替换指定位置字符_Excel数据分析:如何替换字符串中的指定字符?

    数据分析预处理中,经常遇到这样的问题:现有字符串中,如何替换指定的部分字符,例如有大量电话号码,现需要将这些号码最后四位替换为****,该如何做呢? 类似的问题和使用场景有很多,如果你的行记录有几千几 ...

  10. 【函数参数传递】编写一个函数,统计字符串中小写字母的个数,并把字符串中的小写字母转化成大写字母。

    字符串怎么存? 先把字符串中的小写字母统计出来,用strfun()这个函数.当功能比较复杂的时候就一步一步来做. 然后把数组传过来.数组名就是一个指针.需要一个返回值,来记录小写字母的个数,n=str ...

最新文章

  1. python程序设计教材浅显易懂_这些python自学技巧,你不会?
  2. Spring boot属性松散绑定
  3. Android执行shell命令
  4. ELK入门01—Elasticsearch安装
  5. python计算时间装饰器_python 写一个计算运行时间的装饰器
  6. 关于unique()的详解
  7. android组件开关按钮,简单聊聊“开关”这个小控件
  8. [转载]基于TFS实践敏捷-工作项跟踪
  9. [学习笔记]中国剩余定理
  10. 地理空间搜索 ->R树索引
  11. SQL SERVER 2005下载(本地使用)
  12. Masimo宣布旨在协助COVID-19响应努力的远程患者处治解决方案Masimo SafetyNet™全面上市
  13. java excel添加公式_Java 添加、读取 Excel 公式
  14. 2021年北京市企业技术中心申报时间及条件是什么
  15. python码合并txt文件
  16. OSChina 周一乱弹 —— 花式遛狗法
  17. 计算机输入法不能切换用户登录,输入法不能正常切换,输入法切换不出来 - 输入法切换不了,输入法不能切换怎么办? - 安全专题...
  18. 小程序电商商城怎么搭建?
  19. [ 操作系统 ] 假定在单CPU条件下有下列要执行的作业,用一个执行时间图描述在采用非抢占优先级算法时执行这些作业的情况;对于上述算法,各个作业的周转时间是多少?平均周转时间是多少?
  20. KBP410-ASEMI开关电源整流器件KBP410

热门文章

  1. 概率论基础 - 5 - 马尔可夫不等式
  2. Chapter 5 (Limit Theorems): Markov and Chebyshev Inequalities (马尔可夫和切比雪夫不等式)
  3. Spark Streaming之容错性
  4. python批量处理excel——给指定单元格填充颜色
  5. 【Lintcode】350. Slash Separating
  6. 一个简单LEGv8处理器的Verilog实现【二】【指令相关基础知识与实验分析】
  7. 关于医学影像中的轴位面(横断面)、冠状面、矢状面的解释
  8. push代码至gitee码云报错unable to access ‘https://gitee.com/*/git/‘: The requested URL returned error: 403
  9. Appkey is not configured or configured incorrectly
  10. 三维激光扫描后处理软件_青出于蓝 尽锋芒——非白三维发布蓝激光手持三维扫描仪...