私はそれについてどうやってどうやって行けばいいのか分かりませんが、私はコメントしたコードで見られるようなソート方法が必要だと知っていますが、どの変数(参照とプリミティブ)このメソッドを構築することを考慮して配置されています。私は自分のコードで少し失われてしまった。このプログラムを追加して、出力を最高周波数から最低周波数にソートする方法はありますか?
class Big
{
private static String ALLCHARS = "abcdefghijklmnopqrstuvwxyz";
private static String[] SortedArray = new String[26];
public static void main(String[] args)
{
LetterCount[] histogram = new LetterCount[26];
// Array of LetterCount Objects.
arrayInitializer(histogram);
//arraySorter(histogram);
String input = args[0].toLowerCase();
for (int i = 0; i < input.length(); i++) {
char c = input.charAt(i);
if (ALLCHARS.indexOf(c) == -1) {
continue;
}
int posOfC = ALLCHARS.indexOf(c);
/*System.out.println(c + ": " + posOfC);
System.out.println(histogram[posOfC]);
We got rid of these print statements because were using the asString method
*/
// Any one element in the histogram[] is a letter count object.
histogram[posOfC].count++;
//Only objects can be null, posOfC is an int.
//histogram is a null pointer in this current code.
}
for (int i = 0; i < histogram.length; i++) {
System.out.println(histogram[i].asString());
}
}
private static void arrayInitializer(LetterCount[] input) {
for (int i = 0; i < input.length; i++) {
LetterCount lettcount = new LetterCount();
lettcount.count = 0;
lettcount.letter = ALLCHARS.charAt(i);
input[i] = lettcount;
}
}
private static void arraySorter (LetterCount[] input, String[] ToBeSorted) {
// for (int i = 0; i < input.length; i++)
// if (input[i] < ToBeSorted[i])
// swap(input[i], ToBeSorted[i]);
}
// private static void swapMethod (LetterCount[] input1, String[] input2) {
// int temporarySwapVariable = LetterCount[input1];
// String[input2] = temporarySwapVariable;
// LetterCount[input1] = String[input2];
//}
}
//
class LetterCount {
char letter;
int count;
public String asString() {
return letter + ":" + count;
}
}
nhouser9を、 はありがとうございました!これはちょうど私が必要とした答えのようなものでした。あなたの説明は元々ですが、ほとんどの人が答えを出して説明していないので、私は心から感謝しています。 1つの簡単な質問をさらに展開して、これを編集して0の値で検出された文字を印刷しないようにするにはどうすればよいですか? if文を初期化するだけで? – Synergy76
@ Synergy76お手伝いを喜んで! 0値を出力しないように変更するには、印刷コードの中にifステートメントを追加するだけです。私の答えの一番下を参照してください - 私は編集を追加します – nhouser9
これは本当にあなたの助けをありがとう、私の一日を作った。私は今、さらに学ぶことができるテンプレートのビットを持っています。本当に感謝の気持ちを表明できないように、ありがとうございました。あなたの週末には素晴らしい休日がありますように! – Synergy76