字符串的统计字符串

//字符串的统计字符串
public class GetCoutString{
	//统计字符串
	public static String getCountString(String str)
	{
		if(str==null||str.equals(""))
		{
			return "";
		}
		char[]chs=str.toCharArray(); //字符串转换成数组
		String res=String.valueOf(chs[0]);
		int num=1;
		for(int i=1;i<chs.length;i++)
		{
			if(chs[i]!=chs[i-1])
			{
				res=concat(res,String.valueOf(num),String.valueOf(chs[i]));
				num=1;

			}else
			{
                 num++;
			}
		}
		return concat(res,String.valueOf(num),"");

	}
	//串连接
	public static String concat(String s1,String s2,String s3)
	{
       return s1+"_"+s2+(s3.equals("")?s3:"_"+s3);
	}
     
     //返回字符
	public static char getCharAt(String str,int index)
	{
        if(str==null||str.equals(""))
        {
        	return 0;
        }
        char[]chs=str.toCharArray(); //字符串转数组
        boolean stage=true;
        char cur=0;
        int num=0;
        int sum=0;
        for(int i=0;i!=chs.length;i++)
        {
        	if(chs[i]=='_')
        	{
        		stage=!stage;
        	}else if(stage)
        	{
        		sum+=num;
        		if(sum>index)
        		{
        			return cur;
        		}
        		num=0;
        		cur=chs[i];
        	}else{
        		num=num*10+chs[i]-'0';
        	}
        }
        return sum+num>index?cur:0 ;
	}

	public static void main(String[]args)
	{
        String str="aaabbadddffc";
        System.out.println(getCountString(str));

        //返回索引所在的字符串
        System.out.println(getCharAt(getCountString(str),6));


	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值