import static java.util.regex.Pattern.compile;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Calculator {
private static final String START_TEXT = "ÐÐ»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ ÑоваÑа введиÑе его название и ÑÑоимоÑÑÑ Ð² ÑоÑмаÑе: <ÐÐÐÐÐÐÐРРУÐÐÐ.ÐÐÐÐÐÐÐ> и нажмиÑе . " +
"ÐÑимеÑ: <коÑе 150.05>. ÐÑли Ð²Ñ Ð·Ð°ÐºÐ¾Ð½Ñили добавлÑÑÑ ÑоваÑÑ, Ñо введиÑе: <завеÑÑиÑÑ>.";
private static final String PATTERN = "(.+(\\s+.+)*)*\\s+([0-9]+\\.[0-9]{2})$";
public List products = new ArrayList<>();
public void parseNewProducts() {
System.out.println(START_TEXT);
String line;
while (true) {
try {
line = Main.scanner.nextLine();
if (line.equalsIgnoreCase("завеÑÑиÑÑ")) break;
Pattern pattern = compile(PATTERN);
Matcher matcher = pattern.matcher(line);
if (matcher.find()) {
var productNameWithoutSpaces = matcher.group(1).trim();
if (productNameWithoutSpaces.length() == 0) throw new IllegalArgumentException("ÐедопÑÑÑимÑй пÑодÑкÑ");
products.add(new Product(productNameWithoutSpaces, Double.valueOf(matcher.group(3))));
System.out.println("ÐÑлиÑно. Ðобавили пÑодÑÐºÑ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ = '" + productNameWithoutSpaces + "' и ÑÑоимоÑÑÑÑ = " + matcher.group(3) + ". ÐобавлÑйÑе пÑодÑкÑÑ ÐµÑе или напиÑиÑе <завеÑÑиÑÑ>.");
} else System.out.println("ЧÑо-Ñо не Ñак. " + START_TEXT);
} catch (Exception __) {
System.out.println("ЧÑо-Ñо не Ñак. " + START_TEXT);
}
}
}
public double getPriceForAllProducts() {
return products.stream().map(item -> item.price).reduce(0.0, Double::sum);
}
public String calculateProductSumForOnePerson(int personCount) {
return Formatter.formatSum(getPriceForAllProducts()/personCount);
}
}