通过键盘输入一串小写字母(a~z)组成的字符串。
请编写一个字符串归一化程序,统计字符串中相同字符出现的次数,并按字典序输出字符及其出现次
数。
例如字符串"babcc"归一化后为"a1b2c2"
输入描述:
每个测试用例每行为一个字符串,以’\n’结尾,例如cccddecca
输出描述:
输出压缩后的字符串ac5d2e
示例1
输入
dabcab
输出
a2b2c1d1
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Solution{
public static void main(String[] args) throws IOException {
InputStreamReader input = new InputStreamReader(System.in); // 字节流转换为字符流
BufferedReader buffer = new BufferedReader(input); // 放入BufferedReader使得读取速度更快
int []count = new int[26]; // 创建一个数组用于计数
char []charArray = buffer.readLine().toCharArray(); // 将输入的字符串按行读取后转换为字符数组
for(int i=0; i<charArray.length; i++){
count[charArray[i]-'a']++; // 遍历字符数组,计数各个字符出现的次数
}
StringBuffer sb = new StringBuffer();
for(int i=0; i < 26; i++){ // 将26个子母中存在的字母进行遍历输出
if(count[i] !=0){
sb.append((char)(i+'a')); // 强制类型转换为字符
sb.append(count[i]);
}
}
System.out.println(sb.toString());
}
}