c语言怎么删除字符串中的指定字符_Java中你知道几种从字符串中找指定的字符的数量
遇到这样的问题,常规的思路估计就是遍历String,然后逐个对比。下面先看循环遍历
循环遍历
private static int getNum(String originStr, String targetStr){ int result = 0; for (int i = 0; i < originStr.length(); i++) { if (targetStr.equals(originStr.substring(i, i + 1))){ result ++; } } return result;}
这样虽然直观,但感觉效率不行。继续研究String中的方法,很快我们想到了indexOf方法,该方法可以获取指定字符串在String对象的位置。
indexOf方法
private static int getNum(String originStr, String targetStr){ int res = 0; int i = originStr.indexOf(targetStr); while (i != -1){ i = originStr.indexOf(targetStr,i+1); res++; } return res;}
这样的方法看上去,好像不太直观,此时想到split方法,该方法可以根据字符串切分原字符串,似乎可以通过切割后的数组数量达到计算效果
split方法
private static int getNum(String originStr, String targetStr){ int start = originStr.startsWith(targetStr) ? 1 : 0; int end = originStr.endsWith(targetStr) ? 1 : 0; String[] split = originStr.split(targetStr); return split.length - 1 + start + end;}
split方法使用需要注意边界问题,如果不注意,容易漏计算。除了这些还有其他方案吗?
replaceAll方法
private static int getNum(String originStr, String targetStr){ String result = originStr.replaceAll(targetStr, ""); int i = originStr.length() - result.length(); return i;}
通过replaceAll方法需要注意targetStr中是否有需要转义的字符串。
测试各个方法的效率
将每个方法执行10000次,测得每个方法耗时如下
遍历:10msreplaceAll:35mssplit:11msindexOf:2ms
因此建议使用indexOf,大家还有没有更高级的方法,欢迎留言。
c语言怎么删除字符串中的指定字符_Java中你知道几种从字符串中找指定的字符的数量相关推荐
- java字节字符_java按字节截取带有汉字的字符串的解法(推荐)
由于接口使用的oracle字段长度为固定字节数,然后传进来的字符串估计比数据库字段的总字节数要大,那么截取小于数据库字节数的字符串. 自己参考网上的例子,整了个递归调用就可以了,因为截取的字符字节长度 ...
- python中复数采用什么方法提取实部_讲解Python3中NumPy数组寻找特定元素下标的两种方法 python3中怎样实现对一个复数取实部...
python numpy 数组提取某一列大于某一直的数据 import numpy as npa=np.arange(9).reshape(3,3)12 a Out[31]: array([[0, 1 ...
- java中如何读写文件_JAVA: 读写文件的几种方法
如果您使用java8,可以也参考这篇文章:JAVA: Java8流逐行读取文件 import java.io.BufferedReader; import java.io.BufferedWriter ...
- 堆叠自编码器中的微调解释_25种深刻漫画中的编码解释
堆叠自编码器中的微调解释 by freeCodeCamp 通过freeCodeCamp 25种深刻漫画中的编码解释 (Coding Explained in 25 Profound Comics) W ...
- C 语言实例 - 删除字符串中的特殊字符
C 语言实例 - 删除字符串中的特殊字符C 语言实例 C 语言实例 删除字符串中的除字母外的字符. 实例 #include<stdio.h>int main() {char line[15 ...
- c语言实现文件数据删除视频,如何用c语言实现删除文件中指定的数据;例如
匿名用户 1级 2012-05-21 回答 你的描述不清晰,B1和B2两个结构数组,到底要删除哪个?B[2]是肯定不对的,这两个数组的长度都是2,下标只能是0和1,即B1[0], B1[1], B2[ ...
- java 字符串删除字符_Java基础(一)字符串之如何删除指定的字符
需求说明: 在Java中,如何删除字符串中指定位置的字符? 解决方式: 在Java中并没有提供一个直接删除字符串中字符的方法,想要删除字符需要自己封装一个方法实现 方法一:通过从前往后循环每一个字符, ...
- ACMNO.40 C语言-子串 有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串
题目描述 有一字符串,包含n个字符. 写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串. 输入 数字n 一行字符串 数字m 输出 从m开始的子串 样例输入 6 abcdef 3 样 ...
- R语言使用str_split函数和str_split_fixed函数将字符串分割(分裂、split)成几个部分:str_split函数使用指定的字符或者字符串分割字符串、str_split_fixed
R语言使用str_split函数和str_split_fixed函数将字符串分割(分裂.split)成几个部分:str_split函数使用指定的字符或者字符串分割字符串.str_split_fixed ...
- 将一个数组中的字符串用指定字符分割开,分别放到另一个数组中
#include "stdafx.h" #include <stdio.h> #include <string.h> #pragma warning(dis ...
最新文章
- Jenkins配置与使用
- 第5章 Python 数字图像处理(DIP) - 图像复原与重建3 - 爱尔兰(伽马)噪声
- linux备份日志文件脚本,Linux篇:Shell脚本实现Gitlab双备份
- python中的文件父路径怎么表达_python中的文件父路径怎么表达_如何在Python中访问父目录...
- 金融资讯数据服务平台建设实践
- FFmpeg源代码简单分析:libavdevice的avdevice_register_all()
- (三) 初识XMAL
- oracle kup04040,ORA-20011 ORA-29913 and ORA-29400错误的说明
- 0基础怎么学习SEO?
- I DEA出现Spring配置错误:class path resource [.xml] cannot be opened because it does not exist
- 步进电机基础(2.6)-直线步进电机
- 华纳媒体将持有拉美和加勒比海西班牙语地区HBO品牌服务的全部所有权,包括所有HBO、MAX、Cinemax和HBO Go服务
- SqlSugar.SqlSugarException: English Message : Connection open error . 给定关键字不在字典中
- Swift编程语言简介
- 中国人必须知道的76个常识。。。看了才发现,自己知道的实在太少了
- 痞子衡嵌入式:ARM Cortex-M文件那些事(3)- 工程文件(.ewp)
- python短路与_python的“短路”效应
- 香港科技大学(广州)信息枢纽手册
- 电容式液位传感器VFS02-C
- Real-Time Rendering 4th 译文《一》
热门文章
- 换个角度看敏捷1-敏捷问题解决方式
- Hardfault 2
- Linux 802.11 Driver Developer’s Guide
- 关于Webview带参访问服务器
- java中类型转换的造型_Java-类型转换 - 吉胖子很瘦的个人空间 - OSCHINA - 中文开源技术交流社区...
- python取百位数个位数_使用Python把数值形式的金额变成人类可读形式
- Java中的对象序列化操作
- C++中变量可以在需要时定义
- 大二上期计算机试题答案,2019年对口升学班上期期末计算机网络技术试卷及答案知识讲解.doc...
- 前端php解密,转发:RSA实现JS前端加密,PHP后端解密