字符串的统计字符串
程序员文章站
2022-04-30 22:09:56
...
//字符串的统计字符串
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));
}
}