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 (Retired) Delivering the MVP Validation

I need help

I am on the course java objects and I really need help. Somebody please.

TeacherAssistant.java
public class TeacherAssistant {

  public static String validatedFieldName(String fieldName) {
    // These things should be verified:
    // 1.  Member fields must start with an 'm'
    // 2.  The second letter in the field name must be uppercased to ensure camel-casing
    // NOTE:  To check if something is not equal use the != symbol. eg: 3 != 4
    if (fieldName.indexOf(0) != 'm' || 
        fieldName.indexOf(1) >= 0 != Character.isUpperCase(fieldName.indexOf(1)))
      throw new IllegalArgumentException("Invalid fieldname entered.");
    }
    return fieldName;
  }

}

4 Answers

You may be right, it seemed like it would have the same result. I went ahead and ran the challenge and this code worked for me:

public class TeacherAssistant {

  public static String validatedFieldName(String fieldName) {
    if(fieldName.charAt(0) != 'm'  ||  !Character.isUpperCase(fieldName.charAt(1)))
   throw new IllegalArgumentException("Invalid fieldname entered.");
else 
  return fieldName;

  }

}

It worked

try replacing your indexOf() with charAt() in your if statement and you don't need the >= 0 in there.

if(fieldName.chartAt(0) != 'm'  ||  Character.isLowerCase(fieldName.charAt(1)))
   throw new IllegalArgumentException("Invalid fieldname entered.");
else 
  return fieldName;

I didn't run this code but I believe it will work.

Sorry did not work

I just realized that I typed the first charAt wrong: I typed it chartAt(). Try it again without the extra 't'.

I don't think Character.isLowerCase(char) is equivalent to !Character.isUpperCase(char) in all cases.

if (fieldName.charAt(0) != 'm'  || !Character.isUpperCase(fieldName.charAt(1))) throw new IllegalArgumentException();

return fieldName;