자바 문자열 이 다른 문자열 에 나타 나 는 횟수 를 집계 하 는 방법
자바 는 다른 문자열 에 문자열 이 나타 나 는 횟수 를 집계 합 니 다.
코드 는 다음 과 같 습 니 다:
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;
}
}
실행 결과:항상 경건 한 마음 을 가지 고 나 누 기 를 좋아한다.지식 이 더 의미 가 있다.
PS:여기 서 여러분 께 매우 편리 한 통계 도구 2 가 지 를 추천 합 니 다.
온라인 글자 수 통계 도구:
http://tools.jb51.net/code/zishutongji
온라인 문자 통계 및 편집 도구:
http://tools.jb51.net/code/char_tongji
자바 알고리즘 과 관련 된 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.
본 고 에서 말 한 것 이 여러분 의 자바 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.