private long parseWithMultiplier(String numberStr) {
    char c = numberStr.charAt(numberStr.length() - 1);
    final long mult;
    if (Character.isDigit(c)) {
      mult = 1;
    } else {
      switch (c) {
        case 'k':
        case 'K':  
          mult = 1L << 10;
          break;
        case 'm':
        case 'M':
          mult = 1L << 20;
          break;
        case 'g':
        case 'G':
          mult = 1L << 30;
          break;
        case 't':
        case 'T':
          mult = 1L << 40;
          break;
        default:
          throw new IllegalArgumentException("Unknown multiplier character ["+c+"]");
      }
      numberStr = numberStr.substring(0, numberStr.length() - 1);
    }
    long body = Long.parseLong(numberStr);
    return mult * body;
  }