You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

25 lines
805 B

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class BowlingGameCalculator {
private static final Pattern SINGLE_VALUE_PATTERN = Pattern.compile("\\d");
private static final Pattern SPARE_PATTERN = Pattern.compile("/[ -,]*(\\d)");
private static final int INITIAL_SCORE_VALUE = 0;
public int score(String playerResult) {
int playerScore = INITIAL_SCORE_VALUE;
Matcher singleDigit = SINGLE_VALUE_PATTERN.matcher(playerResult);
while (singleDigit.find()) {
playerScore += Integer.parseInt(singleDigit.group());
}
Matcher spare = SPARE_PATTERN.matcher(playerResult);
while (spare.find()) {
playerScore += 10 + Integer.parseInt(spare.group(1));
}
return playerScore;
}
}