codewars-013: Ease the StockBroker

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();
  }
}
相關文章
相關標籤/搜索