Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Java Java Objects Creating the MVP Conference Registration Assistant

Jaeden Eldred
Jaeden Eldred
1,038 Points

this code works in Eclipse, but stating it won't work here. Where should I go?

I have taken 2 Strings I created and I am comparing them to the first letter of any name sent to them. The first String contains the first 13 letters of the alphabet and the 2nd string contains the second half. I have re-created this code in Eclipse and it works totally fine, however, here it is stating that it doesn't. If I could get any advice on this, that would be great. Thanks

ConferenceRegistrationAssistant.java
public class ConferenceRegistrationAssistant {

  /**
   * 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) {
    int lineNumber = 0;

    char firstLetter = lastName.charAt(0);
    String aThroughm = "abcdefghijklm";
    String nThroughz = "nopqrstuvwxyz";

    if (aThroughm.indexOf(firstLetter) != -1){
        return lineNumber = 1;
    }   else {
        return lineNumber = 2;
    }


  }

}
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

Jaeden Eldred
Jaeden Eldred
1,038 Points

As far as I know, that shouldn't affect the way that it reads the character. I was able to copy this code into eclipse and it ran perfectly fine.

Brendan Whiting
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
Brendan Whiting
Front End Web Development Techdegree Graduate 84,735 Points

When I enter in your code, I got this error message: "Hmmm, I entered "Mandela" for the lastName and expected line number 1 to be returned, but instead it was 2".

The first character of "Mandela" is "M". It looks to find "M" in "abcdefghijklm" and doesn't find it, because "M" is a different character than "m", so the method returns 2 instead of 1.

What test cases are you passing in when you run it in Eclipse on your machine?

Jaeden Eldred
Jaeden Eldred
1,038 Points

Hey Brendan, you were right. I changed the code to look like this

public int getNumberFor(String lastName) { String lastName2 = lastName.toLowerCase(); " " " " " " " " }

This helped with the issue and it now works. Thank you for the help.