rite an application that allows a user to enter the names and birthdates of up to 10 friends. Continue to prompt the user for names and birthdates until the user enters the sentinel value ZZZ for a name or has entered 10 names, whichever comes first. When the user is finished entering names, produce a count of how many names were entered, and then display the names. In a loop, continuously ask the user to type one of the names and display the corresponding birthdate or "Sorry, no entry for name" if the name has not been previously entered. The loop continues until the user enters ZZZ for a name.
Some already helped me with this but I get the following error: Exception in thread "main" java.util.NoSuchElementException: No line found at java.util.Scanner.nextLine(Scanner.java:1540) at BirthdayReminder.main(BirthdayReminder.java:57)
Write an application that allows a user to enter the names and birthdates of up to 10 friends. Continue to prompt the user for names and birthdates until the user enters the sentinel value ZZZ for a name or has entered 10 names, whichever comes first. When the user is finished entering names, produce a count of how many names were entered, and then display the names. In a loop, continuously ask the user to type one of the names and display the corresponding birthdate or "Sorry, no entry for name" if the name has not been previously entered. The loop continues until the user enters ZZZ for a name.
The code for above
Java:
import java.util.*;
public class BirthdayReminder{
public static void main(String[] args)
{
final int NUM_NAMES = 10;
String sentinal = "ZZZ";
int count = 0;
String name = null;
String birthdate = null;
String[] names = new String[NUM_NAMES];
String[] birthdates = new String[NUM_NAMES];
Scanner input = new Scanner(System.in);
System.out.println("Enter a name or " + sentinal + " to quit > ");
name = input.nextLine();
while(name.compareTo(sentinal)!=0 && count < NUM_NAMES)
{
System.out.println("Enter birthdate (mm/dd) > ");
birthdate = input.nextLine();
names[count] = name.trim();
birthdates[count] = birthdate.trim();
System.out.println("Enter a name or " + sentinal + " to quit > ");
name = input.nextLine();
++ count;
}
System.out.println("\nCount of names is " + count);
System.out.println("\nNames are:" + count);
for(int x = 0; x < count; ++x)
System.out.println(names[x]) ;
boolean repeat = true;
boolean found;
while(repeat)
{
found=false;
System.out.println("\nEnter a name or " + sentinal + " to quit > ");
name = input.nextLine().trim();
if(name.compareTo(sentinal)==0)
repeat = false;
else
{
for(int x = 0; x < count; ++x)
{
if(names[x].compareTo(name)==0)
{
found =true;
birthdate = birthdates[x];
break;
}
}
if(found)
System.out.println("Birthdate of " + name + " is " + birthdate);
else
System.out.println("Birthdate of " + name + " is not found");
}
}
}
}
Trending now
This is a popular solution!
Step by step
Solved in 2 steps with 1 images