文字のリストをソートし、関連する頻度で頻度順に出力しようとしています。ユーザーは "beeeerr" に入れた場合、私はそれを出したい "のE FREQ:4、RのFREQ:2、BのFREQ:1" ここJava:配列のみを使用して頻度で文字のリストをソート
は、私がこれまで持っているものです。
public static void sort(String charInput) {
int frequency = 0;
char [] charArray = charInput.toCharArray();
for (char charValue = ' '; charValue <= '~'; charValue++) {
frequency = 0;
for (int i = 0; i < charInput.length(); i++) {
char compare = charArray[i];
//charInput.charAt(i)
if (compare == charValue) {
frequency += 1;
}
}
if (frequency > 0) {
System.out.println(charValue + " freq: " + frequency);
}
}
}
この問題は、アルファベット順に周波数を出力することです。私は出力をその周波数でどのようにソートするかを理解することはできません。私はHashmapsやArraylistsでこれを簡単に行う方法を知っていますが、それらを使うことは許されません。すべてのヘルプははるかにJavaの8ストリームAPIで
Javaは、Unicodeを使用しています。質問には「〜〜〜」の関心があります。あなたが参照する128文字は[C0 Controls and Basic Latin](http://www.unicode.org/charts/nameslist/index.html)ブロックで、256はC1コントロールとLatin-1補足ブロックを追加します。 ASCIIを言及すると混乱が起こります。拡張ASCIIもそうではありません。 Unicodeのコンテキストでは、ISO 8859-1を意味する必要があります。 [Javaのドキュメント](https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html)に記載されているように、文字列、文字、および文字を処理する方がはるかに簡単ですか? –
訂正していただきありがとうございます。この問題では、Unicodeで設定された文字数に128を変更できます。 – taobupt