자바 문자열 에서 지정 한 문자열 이 나타 나 는 횟수 를 통계 합 니 다.

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

좋은 웹페이지 즐겨찾기