package com.lyk;

import java.util.HashMap;

/**
 * @Date 2012-11-26
 * @author LYJ
 * @Function 统计字符串中每个字符出现的次数
 *
 */
public class CountString {
	
 int find(char []sc,int low,int high){
	 char key=sc[low];
	 while(low<high){
		 while(low<high&&(sc[high]+"").hashCode()>=(key+"").hashCode())
			 high--;
	   sc[low]=sc[high];
		 while(low<high&&(sc[low]+"".hashCode())<=(key+"").hashCode())
			 low++;
		sc[high]=sc[low];
	 }
	 sc[low]=key;
	 return low;
	 
 }
 
 void sort(char []sc,int low,int high){

	 if(low<high){
		 int j=find(sc, low, high);
		 sort(sc, low, j-1);
		 sort(sc, j+1, high);
	 }
	 
	 
 }
 
   String getCountUseSort(String source){
	   char []sc=source.toCharArray();
	   sort(sc, 0, source.length()-1);
	    String s;
	   char flag=sc[0];
	    int count =1;
	    StringBuilder countSbd=new StringBuilder();
	   for(int i=1;i<sc.length;i++)
	   {
		   if(sc[i]==flag){
				 count++;
		   }
			 else {
				 s=flag+""+count;
				 flag=sc[i];
				 count=1;
				 countSbd.append(s);
	   }
	   
	 
	 
   }
	   countSbd.append(flag+""+count);
	   return countSbd.toString();
   }
	   
 
   
   String getCountUseMap(String source){
	   HashMap<Character, Integer> countMap=new HashMap<Character, Integer>();
	   char[]cr=source.toCharArray();
	   countMap.put(cr[0], 1);
	   for(int i=1;i<=cr.length-1;i++)
		   if(countMap.containsKey(cr[i]))
			   countMap.put(cr[i], countMap.get(cr[i])+1);
		   else 
			   countMap.put(cr[i], 1);
	   String s=countMap.toString();
	   s=s.replaceAll("=", "").replace('{', ' ').replace('}', ' ').replace(',', ' ').replaceAll(" ", "");
	   
	 
	   return s.trim();
   }
   
   String getCoutUseHash(String source){
	   char []ch=source.toCharArray();
	   int size=findMaxHash(ch);
	   int []countAry=new int[size];
	   String []item=new String[size];
	   for(int i=0;i<=ch.length-1;i++)
	   {  
		   int hsCode=(ch[i]+"").hashCode();
		   int len=hsCode-1;
	       countAry[hsCode-1]+=1;
	       item[len]=ch[i]+"";
		   
	   }
	   StringBuilder sbd=new StringBuilder();
	   for(int i=0,len=countAry.length;i<len;i++){
		   if(countAry[i]!=0)
		   {
			
			   sbd.append(item[i]+""+countAry[i]);
		   }
	   }
	   return sbd.toString();
	   
   }
   
   int findMaxHash(char []c){
	   int first=(c[0]+"").hashCode();
	   for(int i=1;i<=c.length-1;i++){
		   first=(c[i]+"".hashCode())>first?c[i]+"".hashCode():first;
	   }
		   return first;
   }

 
 public static void main(String[] args) {

	 
	 System.out.println(new CountString().getCountUseSort("李永杰凹凸凹凸李永杰凹凸aaxxxxxxxx我我我李永杰a我我我b李李永杰凹凸凹凸李永杰凹凸aaxxxxxxxx我我我李永杰a我我我b李李永杰凹凸凹凸李永杰凹凸aaxxxxxxxx我我我李永杰a我我李永杰凹凸凹凸李永杰凹凸aaxxxxxxxx我我我李永杰a我我李永杰凹凸凹凸李永杰凹凸aaxxxxxxxx我我我李永杰a李永杰凹凸凹凸李永杰凹凸aaxxxxxxxx我我我李永杰a我我我b李永李永杰凹凸凹凸李永杰凹凸aaxxxxxxxx我我我李永杰a我我我b李永克cc你你你爱cbabccc我爱你克cc你你你爱cbabccc我爱你我我我b李永克cc你你你爱cbabccc我爱你我b李永克cc你你你爱cbabccc我爱你我b李永克cc你你你爱cbabccc我爱你永克cc你你你爱cbabccc我爱你永aaaaaaaaaaaa克cc你你你爱cbabccc我爱你"));
   System.out.println(new CountString().getCountUseMap("李永杰凹凸凹凸李永杰凹凸aaxxxxxxxx我我我李永杰a我我我b李李永杰凹凸凹凸李永杰凹凸aaxxxxxxxx我我我李永杰a我我我b李李永杰凹凸凹凸李永杰凹凸aaxxxxxxxx我我我李永杰a我我李永杰凹凸凹凸李永杰凹凸aaxxxxxxxx我我我李永杰a我我李永杰凹凸凹凸李永杰凹凸aaxxxxxxxx我我我李永杰a李永杰凹凸凹凸李永杰凹凸aaxxxxxxxx我我我李永杰a我我我b李永李永杰凹凸凹凸李永杰凹凸aaxxxxxxxx我我我李永杰a我我我b李永克cc你你你爱cbabccc我爱你克cc你你你爱cbabccc我爱你我我我b李永克cc你你你爱cbabccc我爱你我b李永克cc你你你爱cbabccc我爱你我b李永克cc你你你爱cbabccc我爱你永克cc你你你爱cbabccc我爱你永aaaaaaaaaaaa克cc你你你爱cbabccc我爱你"));
   System.out.println(new CountString().getCoutUseHash("李永杰凹凸凹凸李永杰凹凸aaxxxxxxxx我我我李永杰a我我我b李李永杰凹凸凹凸李永杰凹凸aaxxxxxxxx我我我李永杰a我我我b李李永杰凹凸凹凸李永杰凹凸aaxxxxxxxx我我我李永杰a我我李永杰凹凸凹凸李永杰凹凸aaxxxxxxxx我我我李永杰a我我李永杰凹凸凹凸李永杰凹凸aaxxxxxxxx我我我李永杰a李永杰凹凸凹凸李永杰凹凸aaxxxxxxxx我我我李永杰a我我我b李永李永杰凹凸凹凸李永杰凹凸aaxxxxxxxx我我我李永杰a我我我b李永克cc你你你爱cbabccc我爱你克cc你你你爱cbabccc我爱你我我我b李永克cc你你你爱cbabccc我爱你我b李永克cc你你你爱cbabccc我爱你我b李永克cc你你你爱cbabccc我爱你永克cc你你你爱cbabccc我爱你永aaaaaaaaaaaa克cc你你你爱cbabccc我爱你"));
 }



}
最近下载更多
wsk588  LV26 2019年12月26日
故事_sun  LV26 2018年5月28日
泡泡跑跑泡泡  LV8 2017年11月23日
最代码官方  LV167 2012年11月26日
最近浏览更多
hwhrr123  LV3 2021年11月20日
FshfshFsh  LV2 2021年3月7日
余多多 2020年6月12日
暂无贡献等级
lllpppwww  LV5 2020年3月25日
wsk588  LV26 2019年12月26日
wx19941125  LV12 2019年7月3日
sky  LV22 2018年12月28日
降伏其心自在生活  LV2 2018年9月29日
一道念  LV10 2018年8月23日
tangjun  LV17 2018年6月19日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友