我有一個任務,我有兩個類,一個驅動程序類,它使用掃描儀實用程序從鍵盤讀取字符串,然後記錄它的字母頻率。 (每個字母出現在輸入字符串中的次數)。我的程序應該繼續輸入文本行,直到您連續輸入兩個返回。然後代碼應該打印字母頻率,然後是報告,提供最頻繁的信件和它的計數(在最常見的信件的情況下,任何最頻繁的信件會這樣做)。此外,我的代碼忽略字母大小寫 - 所以大寫字母以及小寫字母應該被計數。代碼編譯,但不返回任何
我的驅動類
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());
}
}
再次我的代碼編譯,當我運行它讓我進入我的文字輸入,但是當我回到兩次都是我得到空白輸出。我認爲這可能與我的配置文件類沒有正確從我的驅動程序類讀取,但無法弄清楚什麼是錯的。
請問爲什麼它是letterProfile.countChars(TSCAN);而不是s?是不是我的字符串輸入? – aiuna 2013-03-19 17:33:20
's'是'Scanner'對象。使用掃描儀,您正在讀取變量'tScan'中的字符串,您將使用該字符串。 – Amar 2013-03-19 17:35:37
好的,謝謝,我覺得司機班很好走,但我的個人檔案類時髦,所以它沒有返回我所需的輸出.. – aiuna 2013-03-19 17:38:16