com.vladsch.flexmark.util.format.NumberFormat Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of flexmark-util-format Show documentation
Show all versions of flexmark-util-format Show documentation
flexmark-java format utility classes
The newest version!
package com.vladsch.flexmark.util.format;
public enum NumberFormat {
NONE,
ARABIC,
LETTERS,
ROMAN,
CUSTOM,
;
public static String getFormat(NumberFormat format, int count) {
switch (format) {
case NONE:
return "";
case ARABIC:
return String.valueOf(count);
case LETTERS:
if (count < 1)
throw new NumberFormatException("Letter format count must be > 0, actual " + count);
return getFormat(count - 1, "abcdefghijklmnopqrstuvwxyz");
case ROMAN:
return new RomanNumeral(count).toString();
case CUSTOM:
throw new IllegalStateException(
"CounterFormat.CUSTOM has to use custom conversion, possibly by calling getFormat(int count, CharSequence digitSet)");
}
return "";
}
public static String getFormat(int count, CharSequence digitSet) {
StringBuilder sb = new StringBuilder(10);
int base = digitSet.length();
do {
int next = count / base;
int dig = count - next * base;
sb.append(digitSet.charAt(dig));
count = next;
} while (count > 0);
int iMax = sb.length();
StringBuilder out = new StringBuilder(iMax);
for (int i = iMax; i-- > 0; ) {
out.append(sb.charAt(i));
}
return out.toString();
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy