자바 문자열 에서 지정 한 문자열 이 나타 나 는 횟수 를 통계 합 니 다.
2629 단어 자바
import java.util.HashMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Statistics {
/**
* 1: String contain() ,
*
* @param srcStr
*
* @param findStr
*
* @return
*/
public static int count1(String srcStr, String findStr) {
int count = 0;
int index = 0;
/*
* indexOf() : indexOf(String) String , 0 ! -1
* !
*/
while ((index = srcStr.indexOf(findStr, index)) != -1) {// key str
index = index + findStr.length();
count++;//
}
return count;
}
/**
* 2:Java Pattern Matcher
*
* @param srcStr
* @param findStr
* @return
*/
public static int count2(String srcStr, String findStr) {
int count = 0;
Pattern pattern = Pattern.compile(findStr);// compile(String regex) , Pattern
Matcher matcher = pattern.matcher(srcStr);//
while (matcher.find()) {// boolean find() ,
count++;
}
return count;
}
/**
* 3: HashMap
* :HashMap key , key, put
*
* @param srcStr
*
* @return
*/
public static void count3(String srcStr, String findStr) {
//
char[] srcChars = srcStr.toCharArray();
char find = findStr.charAt(0);// char
// HashMap
HashMap hm = new HashMap();
//
for (char c : srcChars) {
// hm key c , hm
if (!hm.containsKey(c)) {
hm.put(c, 1);
} else {
// hm key c ,
hm.put(c, hm.get(c) + 1);
}
}
int count = 0;
// hm, key find value
for (Character key : hm.keySet()) {
count = hm.get(find);
}
System.out.println("count3 :" + find + " " + srcStr + " :"
+ count);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String srcStr = "asdfdfggffsasfaf";
String findStr = "g";
int count1 = count1(srcStr, findStr);
int count2 = count2(srcStr, findStr);
System.out.println("count1 :" + findStr + " " + srcStr + " :"
+ count1);
System.out.println("count2 :" + findStr + " " + srcStr + " :"
+ count2);
count3(srcStr, findStr);
}
}
출력 결과:
count 1 방법:g 가 asdfdfggffsasfaf 에 나타 난 횟수 는:2 count 2 방법:g 가 asdfdfggffsasfaf 에 나타 난 횟수 는:2 count 3 방법:g 가 asdfdfggffsasfaf 에 나타 난 횟수 는:2
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.