204k views
4 votes
Assume inputFile is a Scanner object used to read data from a text file that contains a number of lines. Each line contains an arbitrary number of words, with at least one word per line. Select an expression to complete the following code segment, which prints the last word in each line. while (inputFile.hasNextLine()) { String word = ""; String line = inputFile.nextLine(); Scanner words = new Scanner(line); while (_________________) { word = words.next(); } System.out.println(word); }

1 Answer

2 votes

Answer:

words.hasNext()

Step-by-step explanation:

Given the code snippet below:

  1. while (inputFile.hasNextLine()) {
  2. String word = "";
  3. String line = inputFile.nextLine();
  4. Scanner words = new Scanner(line);
  5. while (words.hasNext()) {
  6. word = words.next();
  7. }
  8. System.out.println(word); }
  9. }

We have a inputFile Scanner object that can read data from a text file and we presume the inputFile has read several rows of data from the text file. So long as there is another line of input data available, the outer while loop will keep running. In each outer loop, one line of data will be read and assign to line variable (Line 3). Next, there is another Scanner object, words, which will take the current line of data as input. To get the last word of that line, we can use hasNext() method. This method will always return true if there is another tokens in its input. So the inner while loop will keep running so long as there is a token in current line of data and assign the current token to word variable. The word will hold the last token of current line of data upon exit from the inner loop. Then we can print the output (Line 8) which is the last word of the current line of data.

User Rizwan Mumtaz
by
4.4k points