2 つのクラスを持つ課題があります。1 つはスキャナー ユーティリティを使用してキーボードから文字列を読み取り、文字の頻度を記録するドライバー クラスです。(入力文字列に各文字が何回出現するか)。私のプログラムは、2 つの Return を続けて入力するまで、テキスト行を入力し続ける必要があります。次に、コードは文字の頻度を出力し、続いて最も頻度の高い文字とその数を示すレポートを出力する必要があります (最も頻度の高い文字が同点の場合は、最も頻度の高い文字が表示されます)。また、私のコードは大文字と小文字を区別しないため、大文字と小文字をカウントする必要があります。
私のドライバークラスは
import java.util.*;
public class LetterDriver{
public static void main(String[] args){
Scanner s = new Scanner(System.in);
String tScan = " ";
while(tScan.length() > 0){
tScan = s.nextLine();
}
}
}
私の実際のプロファイルクラスは
public class LetterProfile {
int score[] = new int [26];
public void countChars (String s) {
s.toLowerCase();
char a = 'a';
for (int i = 0; i < s.length(); i++) {
int next = (int)s.charAt(i) - (int) a;
if ( next<26 && next >= 0)
score[next]++;
}
}
public void scoreLine (String lines) { // prints letter + # of appearance
int index = lines.length();
for (int j = 0; j<index; j++) {
score[j]++;
System.out.println(j + score[j]);
}
}
public int largestLength() { // finds most frequent letter
int largest = 0;
int largestindex = 0;
for(int a = 0; a<26; a++)
if(score[a]>largest){
largest = score[a];
largestindex = a;
}
return largestindex;
}
public void printResults() {
largestLength();
System.out.println(largestLength());
}
}
再びコードがコンパイルされ、実行するとテキスト入力を入力できますが、2 回戻ると空白の出力が表示されます。プロファイル クラスがドライバー クラスから正しく読み込まれていないことに関係しているのではないかと思いますが、何が問題なのかわかりません。