题目描述
通过键盘输入一串小写字母(a~z)组成的字符串。
请编写一个字符串归一化程序,统计字符串中相同字符出现的次数,并按字典序输出字符及其出现次数。
例如字符串"babcc"归一化后为"a1b2c2"
输入描述:
每个测试用例每行为一个字符串,以’\n’结尾,例如cccddecca
输出描述:
输出压缩后的字符串ac5d2e
示例1
输入
复制
dabcab
输出
复制
a2b2c1d1
代码如下:
import java.util.Scanner;
public class Zifuchuanguiyihua {
int[] a=new int[26]; //存放26个字母的出现次数
static String s;
public void count(){ //统计26个英文字母的出现次数
for(int i=0;i<s.length();i++){
int t=s.charAt(i)-'a'; //把s中的第i-1个字母与a相减得到a=0,b=1,c=2......
a[t]++; //对应的字母数组+1
}
}
public void print(){ //打印结果
for(int i=0;i<26;i++){
if(a[i]!=0){
char str=(char) ('a'+i); //str为对应的字符,如i=0时,str=a,i=1时,str=b......
System.out.print(str); //打印出字母
System.out.print(a[i]); //打印出字母对应出现的次数
}
}
}
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
s=in.nextLine();
Zifuchuanguiyihua zf=new Zifuchuanguiyihua();
zf.count();
zf.print();
}
}