Java Java Objects Creating the MVP Conference Registration Assistant

java.util.NoSuchElementException: No line found

The scanner object cannot find the input that i am asking for....

ConferenceRegistrationAssistant.java
import java.util.Scanner;

public class ConferenceRegistrationAssistant {
              String lastName;
              int lineNumber;


  /**
   * Assists in guiding people to the proper line based on their last name.
   *
   * @param lastName The person's last name
   * @return The line number based on the first letter of lastName
   */
  public int getLineNumberFor(String lastName) {
             Scanner scanner=new Scanner(System.in);
             System.out.println("Please enter your last name:               ");
             String lastNameInput=scanner.nextLine();
             if(lastNameInput.charAt(0)<='M'){
                              lineNumber=1;
                              } else {
                                     lineNumber=2;
                                     }

        /*
      lineNumber should be set based on the first character of the person's last name
      Line 1 - A thru M
      Line 2 - N thru Z

     */
    return lineNumber;
  }

}
Example.java
public class Example {

  public static void main(String[] args) {
    /*
      IMPORTANT:  You can compare characters using <, >. <=, >= and == just like numbers
     */
    if ('C' < 'D') {
      System.out.println("C comes before D");
    }

    if ('B' > 'A') {
      System.out.println("B comes after A");
    }

    if ('E' >= 'E') {
      System.out.println("E is equal to or comes after E");
    }

    // This code is here for demonstration purposes only...
    ConferenceRegistrationAssistant assistant = new ConferenceRegistrationAssistant();
    /*
      Remember that there are 2 lines.
      Line #1 is for A-M
      Line #2 is for N-Z
     */
    int lineNumber = 0;
    /*
      This should set lineNumber to 2 because
      The last name is Zimmerman which starts with a Z.
      Therefore it is between N-Z
     */
    lineNumber = assistant.getLineNumberFor("Zimmerman");

    /*
      This method call should set lineNumber to 1, because 'A' from "Anderson" is between A-M.
     */
    lineNumber = assistant.getLineNumberFor("Anderson");

    /*
      Likewise Charlie Brown's 'B' is between 'A' and 'M', so lineNumber should be set to 1
     */
    lineNumber = assistant.getLineNumberFor("Brown");
  }

}

1 Answer

Kevin Haube
Kevin Haube
11,598 Points

Hey!

If you peek into the Example.java file, you will see the method is called with a String passed into it already. This method you're designing is only to serve the purpose of sorting them into line 1 or 2!

Try removing the scanner, prompt, and string, and then for your if() statement, pass in the parameter that is given in the declaration of the method.