Java 一个字符串在另外一个字符串出现次数
统计一个字符串在另外一个字符串出现次数
代码如下:
package me.chunsheng.javatest; import java.util.regex.Matcher;
import java.util.regex.Pattern; /**
* Created by wei_spring on //.
* <p>
* 统计一个字符串在另外一个字符串出现的次数
* 正则匹配的方法,前提字符串不是特殊字符串
* eg:finder("adadadadauuada", "ada") 这样会统计不准确的.
* 另外一个遍历的解决了上面那种情况.
* 两者时间如下(纳秒为单位): 正则明显耗时,正则本就不是统计用的!!!
* finder:
* finderTime:
* getCount:
* getCountTime:
*/
public class SubStringCount { public static void main(String[] args) { long current1 = System.nanoTime();
System.out.println("finder:" + finder("adadadadauuada", "ada"));
System.out.println("finderTime:" + (System.nanoTime() - current1));
long current2 = System.nanoTime();
System.out.println("getCount:" + getCount("adadadadauuada", "ada"));
System.out.println("getCountTime:" + (System.nanoTime() - current2)); } public static int getCount(String source, String sub) {
int count = ;
int length = source.length() - sub.length();
for (int i = ; i < length; i++) {
String sourceBak = source.substring(i, i + sub.length());
int index = sourceBak.indexOf(sub);
if (index != -) {
count++;
}
}
return count;
} public static int finder(String source, String regexStr) {
String regex = "[a-zA-Z]+";
if (regexStr != null && !regexStr.equals("")) {
regex = regexStr;
}
Pattern expression = Pattern.compile(regex);
Matcher matcher = expression.matcher(source); int n = ;
while (matcher.find()) {
n++;
}
return n;
}
}
Java 一个字符串在另外一个字符串出现次数的更多相关文章
- java集合TreeMap应用---求一个字符串中,每一个字母出现的次数
package cn.itcast.p1.map.test; import java.util.Iterator; import java.util.Map; import java.util.Tre ...
- Java TreeSet集合排序 && 定义一个类实现Comparator接口,覆盖compare方法 && 按照字符串长度排序
package TreeSetTest; import java.util.Iterator; import java.util.TreeSet; import javax.management.Ru ...
- java字符串常量池——字符串==比较的一个误区
转自:https://blog.csdn.net/wxz980927155/article/details/81712342 起因 再一次js的json对象的比较中,发现相同内容的json对象使用 ...
- Java 获取一个字符串中,另一个字符串出现的次数
Java 获取一个字符串中,另一个字符串出现的次数 思想: 1. indexOf到字符串中到第一次出现的索引2. 找到的索引+被找字符串长度,截取字符串3. 计数器++ 代码实现: public cl ...
- 设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”。。。
设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”,则抛出一个异常信息“This is a XYZ”,如果从命令行输入 ABC,则没有抛出异常.(只有 ...
- 在存放源程序的文件夹中建立一个子文件夹 myPackage。例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage)。在 myPackage 包中创建一个YMD类,该类具有计算今年的年份、可以输出一个带有年月日的字符串的功能。设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名、年龄、出生日期。程序使用YM
题目补充: 在存放源程序的文件夹中建立一个子文件夹 myPackage.例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage).在 m ...
- Java 从原字符串中截取一个新的字符串 subString()
Java 手册 substring public String substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串.该子字符串从指定索引处的字符开始,直 ...
- Java-Runoob-高级教程-实例-字符串:03. Java 实例 - 删除字符串中的一个字符
ylbtech-Java-Runoob-高级教程-实例-字符串:03. Java 实例 - 删除字符串中的一个字符 1.返回顶部 1. Java 实例 - 删除字符串中的一个字符 Java 实例 以 ...
- java中一个字符串是另外一个字符串的字串
java中一个字符串是另外一个字符串的字串 String类中有一个方法 public boolean contains(Sting s)就是用来判断当前字符串是否含有参数指定的字符串例s1=“take ...
随机推荐
- 在ubuntu 12.04 中配置java环境(安装jdk, tomcat, maven, eclipse)
1. 安装jdk 1.7 在ubuntu( /usr/lib/jvm/java-7-openjdk-amd64 )中默认有安装jdk 1.7 如果没有 可下载 : http://www.oracle. ...
- 基于zigbee与tiny4412开发板的环境监测系统
一.开发板环境搭建 1.tiny4412 linux系统的布置 参考博客:http://www.cnblogs.com/luoxiang/p/4186391.html 二.boa服务器的搭建 下载 ...
- win7自由调整CMD窗口
有如下命令,只需要改动相关参数即可以任意改变cmd窗口大小. mode con lines= mode con cols= color cls @cmd
- Java抽象类深入理解-----模板方法设计模式(Templete Method)
模板方法设计模式(Templete Method) 定义一个操作中的算法骨架,而将一些可变部分的实现延迟到子类中. 模板方法设计模式使得子类可以不改变一个算法的结构即可重新定义该算法某些特定的步骤. ...
- include .h 以及.cpp的记录
VC include 路径解析要了解vc中使用#include命令包含头文件所搜寻的路径,必须先了解vc中的几种路径:1. 系统路径 系统路径在vc中是"Tools->Options- ...
- csdn的下载链接token
qt之QComboBox定制 http://www.cnblogs.com/swarmbees/p/5710714.html http://download.csdn.net/detail/qq_30 ...
- ANDROID使用MULTIPARTENTITYBUILDER实现类似FORM表单提交方式的文件上传
最近在做 Android 端文件上传,要求采用 form 表单的方式提交,项目使用的 afinal 框架有文件上传功能,但是始终无法与php写的服务端对接上,无法上传成功.读源码发现:afinal 使 ...
- Thinkpad E430+CentOS 6.4+ linux-3.10.12内核网卡驱动(无线+有线)配置
配置并编译安装内核模块和内核后,解压附件 firmware.tar.bz2,拷贝其中的rtlwifi文件夹到/lib/firmware下,然后 执行装载内核模块命令: sudo modprobe rt ...
- JAVASCRIPT实现XML分页
为了方便用户查看大批量数据,我们会用到动态分页,因此分页功能是我们在网站上见过的最普遍也是最常用的一个功能模块了.而以往的信息分页都是连接到数据库的,每一次点击都必须要后台数据库的支持.这样不但服务器 ...
- 【转】Device Tree(三):代码分析
原文网址:http://www.wowotech.net/linux_kenrel/dt-code-analysis.html 一.前言 Device Tree总共有三篇,分别是: 1.为何要引入De ...