https://www.codewars.com/kata/54de3257f565801d96001200/train/javajava
packages codewars; import java.util.regex.*; public class OrdersSummary{ public static String balanceStatements(String lst){ StringBuilder sb = new StringBuilder(); int nb = 0; int b = 0; int s = 0; StringBuilder bad = new StringBuilder(); String regex = "\\S+\\s(\\d+)\\s(\\d*\\.\\d+)\\s([BS])"; Pattern p = Pattern.compile(regex); String[] arr = lst.split(","); for(String x : arr){ x = x.trim(); if("".equals(x)){ continue; } Matcher m = p.matcher(x); if(m.find()){ if("B".equals(m.group(3))){ b += Math.round(Double.valueOf(m.group(1)) * Double.valueOf(m.group(2))); }else{ s += Math.round(Double.valueOf(m.group(1)) * Double.valueOf(m.group(2))); } }else{ nb++; bad.append(String.format("%s ;",x)); } } if(nb != 0){ bad.insert(0, String.format("; Badly formed %d: ",nb)); } sb.append(String.format("Buy: %d Sell %d",b,s)); sb.append(bad); return sb.toString(); } }