Sourcejava
//https://www.codewars.com/kata/rainfall/train/java package codewars.dec; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Rainfall { private static double[] array(String town, String str) { String part = null; int start = str.indexOf(town); if (start == -1.0) { return new double[0]; } int end = str.indexOf("\n", start); if (end == -1) { part = str.substring(start); } else { part = str.substring(start, end); } String regex = "\\d+\\.\\d"; double[] arr = new double[12]; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(part); int i = 0; while (m.find()) { arr[i++] = Double.valueOf(m.group()); } return arr; } public static double mean(String town, String str) { double[] arr = Rainfall.array(town, str); if (arr.length == 0) { return -1.0; } double sum = 0.0; for (double x : arr) { sum += x; } return sum / 12; } public static double variance(String town, String str) { double[] arr = Rainfall.array(town, str); if (arr.length == 0) { return -1; } double mean = Rainfall.mean(town, str); double sum = 0; for (double x : arr) { sum += Math.pow(x - mean, 2); } return sum / 12; } }