У меня есть следующий кодPrintWriter искажен выход
//Put the collection frequencies into a file
Iterator iter = docFreq.entrySet().iterator();
while(iter.hasNext())
{
Map.Entry tf = (Map.Entry)iter.next();
pw.write((String)tf.getKey());
pw.write("\t");
pw.write((int)tf.getValue());
pw.write("\t");
float fractionofDocs = (int)tf.getValue()/(float)size;
pw.println(fractionofDocs);
}
pw.close();
Я вижу искаженные выход для второго значения, записываемые в файл, т.е., pw.write((int)tf.getValue());
Выход что-то вроде этого
and õ 0.9607843
of ë 0.92156863
the ê 0.91764706
on Þ 0.87058824
information Ö 0.8392157
Я могу видеть второе поле, напечатанное как значение int
, если последнее поле опущено, то есть после удаления этих строк из while
pw.write("\t");
float fractionofDocs = (int)tf.getValue()/(float)size;
pw.println(fractionofDocs);
Может кто-нибудь скажет мне, где я ошибаюсь?
'pw.println (" "+ fractionofDocs);' или 'pw.println (String.valueOf (fractionofDocs));' То же самое для всех других номеров, которые вы печатаете. –
@HovercraftFullOfEels Спасибо. Это сработало. –