code: public StringBuilder formatMeasurePerUnit(
              Measure measure,
              MeasureUnit perUnit,
              StringBuilder appendTo,
              FieldPosition pos) {
          MeasureUnit resolvedUnit = MeasureUnit.resolveUnitPerUnit(
                  measure.getUnit(), perUnit);
          if (resolvedUnit != null) {
              Measure newMeasure = new Measure(measure.getNumber(), resolvedUnit);
              return formatMeasure(newMeasure, numberFormat, appendTo, pos);
          }
          FieldPosition fpos = new FieldPosition(
                  pos.getFieldAttribute(), pos.getField());
          int offset = withPerUnitAndAppend(
                  formatMeasure(measure, numberFormat, new StringBuilder(), fpos),
                  perUnit,
                  appendTo);
          if (fpos.getBeginIndex() != 0 || fpos.getEndIndex() != 0) {
              pos.setBeginIndex(fpos.getBeginIndex() + offset);
              pos.setEndIndex(fpos.getEndIndex() + offset);
          }
          return appendTo;
      }
docs: Formats a single measure per unit.
  
  An example of such a formatted string is "3.5 meters per second."
  
  @param measure  the measure object. In above example, 3.5 meters.
  @param perUnit  the per unit. In above example, it is MeasureUnit.SECOND
  @param appendTo formatted string appended here.
  @param pos      The field position.
  @return appendTo.