The method returns an "Ingredient" object that is constructed from a given line in a recipe txt file. Note: an InvalidIngredientException is like an Ingredient version of an InputMismatchException. This isn't thrown by any of the lines in the given recipe file.
public static Ingredient parseString(String line)
        throws InvalidIngredientException {        
    double quantity = 1;
    String measurement = "";
    String[] parts = line.split(";");
    if (parts.length == 1) {
        throw new InvalidIngredientException(EXP_MSG);
    }
    if (!parts[0].trim().isEmpty()
            && !(Double.parseDouble(parts[0]) == 1)) {
        quantity = Double.parseDouble(parts[0].trim());
    }
    if (!parts[1].trim().isEmpty()) {
        measurement = parts[1].trim();
    } 
    return new Ingredient(quantity, measurement, parts[2].trim());
}
A recipe file looks like this:
Cranberry Oatmeal Chews
8; tablespoon; butter
2; tablespoon; oil
1; cup; light brown sugar
1; ; zest of one orange
6; tablespoon; sour cream
2; teaspoon; vanilla
1.5; cup; flour
.5; teaspoon; baking soda
1; teaspoon; cinammon
.5; teaspoon; salt
2; cup; oats
1.5; cup; dried cranberries
.5; cup; walnuts
The method works, but I feel like it could use less code.