7.キャラクター統計
タイトル説明
小文字の英字と数字のみを含む文字列を入力し、異なる文字数の多いものから少ないものへと統計結果を出力します。統計の数が同じ場合、出力はASCIIコードに従って小さいものから小さいものへとソートされます。大。
説明を入力してください:
一个只包含小写英文字母和数字的字符串。
出力の説明:
一个字符串,为不同字母出现次数的降序表示。若出现次数相同,则按ASCII码的升序输出。
入る
aaddccddc
1b1bbbbbbbbb
出力
cda
b1
分析
1.文字列を入力します
2.ストレージ用にchar型の配列に変換します
3. ASCIIコードは128であるため、128長の配列を作成します
4.各文字に印を付け、回数を数えます
5.最も頻繁に発生するものを選び出し、スプライシングを開始します
コード
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main7 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str;
while ((str = br.readLine()) != null) {
char[] c = str.toCharArray();
int[] arr = new int[128];//ASCII码 128个
for (int i = 0; i < c.length; i++) {
arr[c[i]]++;
}
int max = 0;
for (int i = 0; i < arr.length; i++) {
if (max < arr[i])
max = arr[i];
}
StringBuilder sb = new StringBuilder();
while (max != 0) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == max)
sb.append((char) i);
}
max--;
}
System.out.println(sb.toString());
}
}
}