Use a single Scanner to read input. The following program counts the total numbe
ID: 3919525 • Letter: U
Question
Use a single Scanner to read input.
The following program counts the total number of letters in a person's first and last names. The getAndCountNameLetters() method creates a Scanner, reads a name from the user input, and returns the number of letters.
Run the program. Note that the program does not count letters in the last name. The first call to scnr.next() returns the first name, but also reads the last name to make future reads faster. The second call to getAndCountNameLetters() creates a different Scanner, which has nothing left to read.
Change the program by passing a Scanner to the getAndCountNameLetters() method.
Run the program again. Note that the count now includes the last name.
Explanation / Answer
import java.util.*;
public class NameLettersCounter {
public static int getAndCountNameLetters(Scanner scnr) {
String name="";
if(scnr.hasNext()) {
name=scnr.next();
}
return name.length();
}
public static void main(String arg[]) {
int firstNameLetterCount,lastNameLetterCount;
Scanner input=new Scanner(System.in);
System.out.println("Enter first name and last name:");
firstNameLetterCount=getAndCountNameLetters(input);
lastNameLetterCount=getAndCountNameLetters(input);
System.out.println("The first name has "+firstNameLetterCount+" letters");
System.out.println("The first name has "+lastNameLetterCount+" letters");
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.