这篇文章将为大家详细讲解有关Java如何统计一个字符串在另外一个字符串出现次数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
具体如下:
Java统计一个字符串在另外一个字符串出现次数
代码如下:
package me.chunsheng.javatest; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Created by wei_spring on 16/10/11. * <p> * 统计一个字符串在另外一个字符串出现的次数 * 正则匹配的方法,前提字符串不是特殊字符串 * eg:finder("adadadadauuada", "ada") 这样会统计不准确的. * 另外一个遍历的解决了上面那种情况. * 两者时间如下(纳秒为单位): 正则明显耗时,正则本就不是统计用的!!! * finder:3 * finderTime:1579549 * getCount:4 * getCountTime:34506 */ public class SubStringCount { public static void main(String[] args) { System.out.println("亿速云测试结果:"); 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 = 0; int length = source.length() - sub.length(); for (int i = 0; i < length; i++) { String sourceBak = source.substring(i, i + sub.length()); int index = sourceBak.indexOf(sub); if (index != -1) { 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 = 0; while (matcher.find()) { n++; } return n; } }
运行结果:
关于“Java如何统计一个字符串在另外一个字符串出现次数”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。