ниже - мой код для домашнего задания, где мне нужно прочитать содержимое внешнего файла и определить количество слов внутри него, количество трехбуквенных слов и процент от общего количества. У меня есть эта часть, просто отлично, но я также должен распечатать содержимое внешнего файла до отображения вышеуказанной информации. Ниже мой текущий код:Печать содержимого внешнего файла
public class Prog512h
{
public static void main(String[] args)
{
int countsOf3 = 0;
int countWords = 0;
DecimalFormat round = new DecimalFormat("##.00"); // will round final value to two decimal places
Scanner poem = null;
try
{
poem = new Scanner (new File("prog512h.dat.txt"));
}
catch (FileNotFoundException e)
{
System.out.println ("File not found!"); // returns error if file is not found
System.exit (0);
}
while (poem.hasNext())
{
String s = poem.nextLine();
String[] words = s.split(" ");
countWords += words.length;
for (int i = 0; i < words.length; i++)
{
countsOf3 += words[i].length() == 3 ? 1 : 0; // checks for 3-letter words
}
}
while(poem.hasNext())
{
System.out.println(poem.nextLine());
}
System.out.println();
System.out.println("Number of words: " + countWords);
System.out.println("Number of 3-letter words: " + countsOf3);
System.out.println("Percentage of total: " + round.format((double)((double)countsOf3/(double)countWords) * 100.0)); // converts value to double and calculates percentage by dividing from total number of words
}
}
Заявление
while(poem.hasNext())
{
System.out.println(poem.nextLine());
}
предполагается печатать содержимое внешнего файла. Однако это не так. Когда я пытаюсь переместить его перед моим предыдущим циклом while, он печатает, но прижимает мои напечатанные значения к # словам, 3-буквенным словам, проценту и т. Д. Я не совсем уверен, в чем проблема. Может ли кто-нибудь помочь?
Заранее спасибо.
Благодарим за предложение! Я просто попытался реализовать его без везения. Содержимое по-прежнему не печатается. :( – Blackout621