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

Jonathan Hector
Jonathan Hector
5,225 Points

Trying to get the letter to at Specific position to work but can't figure it out.Please help

I would like be specific about which character is to be upperCased but can't figure it out. Keep getting String cannot be converted to char and other errors. Please help

TeacherAssistant.java
import java.util.Scanner;

public class TeacherAssistant {

  public static String validatedFieldName() {
    Scanner in = new Scanner(System.in);
    String fieldName = in.nextLine();
    System.out.printf("Write a field NAME: %s \n", fieldName);
    char letter = fieldName;

    if (!letter.charAt(1) == fieldName.toLowerCase){
    throw new IllegalArgumentException("You must start with an m");
    } else 
    // 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
    return fieldName;
  }

}

1 Answer

public class TeacherAssistant {

  public static String validatedFieldName(String fieldName) {
// Check if first character is m
    if(fieldName.charAt(0) != 'm' ){
      throw new IllegalArgumentException("First letter doesn't begin with m!");
    }
// Check if second character is an upper case letter
    if(fieldName.charAt(1) != Character.toUpperCase(fieldName.charAt(1)) 
    || !Character.isLetter(fieldName.charAt(1))){
    throw new IllegalArgumentException("Error! Check second letter!");
    }
// return validated fieldName if no Illegal Arguments 
    return fieldName;
  }

}

The wording to this question is confusing... Use charAt() method to find character at specific points within the string. In your code you need to check the following statement as the expression on the right is a string: char letter = fieldName;. The validatedFieldName method is also meant to take String fieldName as a parameter and you need to check if it is a member variable by checking the first letter is m and the second letter is uppercase.