嘿,大家我是新來的java,我正在爲我的Java類的介紹做一個獎金分配,我想知道是否有人可以幫助指導我的獎金問題:我只需要一個起點點!謝謝你的幫助!令牌計數令牌長度
這是分配的原始要求:
1)接受一個參數,對於輸入文件來處理的名稱的字符串的構造方法。完成 2)名爲processFile()的函數,它不接受任何參數,並拋出IOException。該函數必須讀取輸入文件的內容並計算每個令牌(字)在文件中存在的次數。成員變量HashMap是一個很好的類。 3)getFileName()函數,無參數,返回一個包含輸入文件名的字符串。 4)getTokenCount()函數,無參數,返回一個int,它是輸入文件中的標記(字)的總數。 5)一個getTokenCount()函數,它接受一個String參數,並返回令牌(字)出現在輸入文件中的次數。 6)一個接受int參數(count)的getTokensHavingCount()函數,並返回一個String的ArrayList,其中這些Strings是在輸入文件中顯示爲「count」次數的令牌。 7)一個getTokensHavingLength()函數,它接受一個int參數(長度),並返回一個ArrayListof字符串,其中這些字符串是輸入文件中具有該確切長度的標記。 8)getAverageOfCounts()函數(不帶參數)返回令牌計數的平均值。
由於這是代碼我到目前爲止,
import java.io.*;
public class Assignment4 {
// Your member variables go here
private String filename;
private int wordcount; // ?
private Map<String, Integer> freq = new HashMap<>(); // <Key,Value>
public Assignment4(final String fileName) {
this.filename = fileName;
}
public void processFile() throws IOException {
File file = new File(filename);
BufferedReader reader;
try {
FileReader fileReader = new FileReader(file);
reader = new BufferedReader(fileReader);
file = null;
String text = "";
String line = reader.readLine();
while (line != null) {
text = text + line + " ";
line = reader.readLine();
}
StringTokenizer st = new StringTokenizer(text);
wordcount = st.countTokens();
}
}
public String getFileName() {
return filename;
}
public int getTokenCount() {
return freq.size;
}
public int getTokenCount(final String key) {
return freq.get(key);
}
public ArrayList<String> getTokensHavingCount(final int count) {
ArrayList<String> wordCount = new ArrayList<String>();
Set<String> set = freq.keySet();
for (String word : set) {
int noOfTimes = freq.get(word);
if (noOfTimes == count)
freq.add(word);
}
return wordCount;
}
public ArrayList<String> getTokensHavingLength(final int length) {
ArrayList<String> wordlength = new ArrayList<String>();
Set<String> set = freq.keySet();
for (String word : set) {
if (word.length() == length)
wordlength.add(word);
}
return wordlength;
}
public int getCountOfTokensHavingCount(final int count) {
return getTokensHavingCount(count).size();
}
public int getCountOfTokensHavingLength(final int length) {
return getTokenHavingLength(count).size;
}
public double getAverageOfCounts() {
ArrayList<String> wordlength = new ArrayList<String>();
double sum = 0.0d;
Set<String> set = freq.keySet();
for (String word : set) {
sum += freq.get(word);
}
return sum/(double) freq.size();
}
}
紅利#1:添加一個名爲getCountOfTokensHavingCount()函數,它接受一個int參數(計數),並返回其出現的令牌的數量在輸入文件中完全「計數」次。獎勵#2:添加一個名爲getCountOfTokensHavingLength()的函數,該函數接受一個int參數(長度),並返回出現在輸入文件中標記中具有完全「長度」字符的標記的數量。
「添加一個函數...」我們向函數中添加了什麼?如果不知道這一點就不可能回答,例如你引用一個「輸入文件」和「令牌」,但不要提供關於當前如何獲得的細節。 –
請給我們你已經有的完整代碼。你似乎正在處理文件。沒有你使用的所有課程的完整代碼,沒有人可以幫助你。 –
提示#1:'Map'。 –