Parser.java
package com.roxoft.aoc.y2015.Day2;
import java.util.Arrays;
import java.util.List;
public final class Parser {
/** The raw content to be parsed. */
private final String content;
private Parser(final String stringToParse) {
this.content = stringToParse;
}
/**
* @param stringToParse the string intended to be parsed.
* @return A {@link Parser} ready to parse the input.
*/
public static Parser parsing(final String stringToParse) {
return new Parser(stringToParse);
}
/**
* @return {@link Day2} object from the raw string.
*/
public Day2 asDay2Entry() {
//^[0-9]{1,2}x[0-9]{1,2}x[0-9]{1,2}$
final List<Integer> x = Arrays
.stream(content.split("x"))
.map(Integer::parseInt)
.toList();
return Day2.of(x.get(0), x.get(1), x.get(2));
}
}