如何使用大值格式化程序设置自定义后缀
How to Set Custom Suffix with Large Value Formatter
我想用大值格式化程序设置自定义后缀。它的默认后缀是:
- k 代表千
- 米为百万
- b 代表十亿
- 万亿吨
但我想将其自定义为:
- 千元人民币
- 百万jt
- 十亿米
- 万亿吨
我曾尝试将其默认更改为 rb、jt、m 和 t,但结果只是:
- r 代表千,不是 rb
- j 表示百万,而不是 jt
m 和 t 没有问题,因为它只包含 1 个后缀
private String[] mSuffix = new String[]{"", "k", "m", "b", "t"};
结果是:
812k,
8.12m,
8.12b,
8.12t
尝试将其更改为:
private String[] mSuffix = new String[]{"", "rb", "jt", "m", "t"};
结果是:
812r,
8.12j,
8.12m,
8.12t
这是使用 mSuffix 的时候
private String makePretty(double number) {
String r = mFormat.format(number);
int numericValue1 = Character.getNumericValue(r.charAt(r.length() - 1));
int numericValue2 = Character.getNumericValue(r.charAt(r.length() - 2));
int combined = Integer.valueOf(numericValue2 + "" + numericValue1);
r = r.replaceAll("E[0-9][0-9]", mSuffix[combined / 3]);
while (r.length() > mMaxLength || r.matches("[0-9]+\.[a-z]")) {
r = r.substring(0, r.length() - 2) + r.substring(r.length() - 1);
}
return r;
}
我希望输出是
- 812rb,
- 8.12jt,
- 8.12m,
- 8.12t
提前致谢
假设 mFormat.formatter(number);
做对了 (5000.0 -> "5k"),那么:
private String makePretty(double number) {
String r = mFormat.format(number);
if (r.indexOf("k") > 0) {
r = r.replace("k", "rb");
} else if (r.indexOf("m") > 0) {
r = r.replace("m", "jt");
} else if (r.indexOf("b") > 0) {
r = r.replace("b", "m")
}
return r;
}
我想用大值格式化程序设置自定义后缀。它的默认后缀是:
- k 代表千
- 米为百万
- b 代表十亿
- 万亿吨
但我想将其自定义为:
- 千元人民币
- 百万jt
- 十亿米
- 万亿吨
我曾尝试将其默认更改为 rb、jt、m 和 t,但结果只是:
- r 代表千,不是 rb
- j 表示百万,而不是 jt
m 和 t 没有问题,因为它只包含 1 个后缀
private String[] mSuffix = new String[]{"", "k", "m", "b", "t"};
结果是: 812k, 8.12m, 8.12b, 8.12t
尝试将其更改为:
private String[] mSuffix = new String[]{"", "rb", "jt", "m", "t"};
结果是: 812r, 8.12j, 8.12m, 8.12t
这是使用 mSuffix 的时候
private String makePretty(double number) {
String r = mFormat.format(number);
int numericValue1 = Character.getNumericValue(r.charAt(r.length() - 1));
int numericValue2 = Character.getNumericValue(r.charAt(r.length() - 2));
int combined = Integer.valueOf(numericValue2 + "" + numericValue1);
r = r.replaceAll("E[0-9][0-9]", mSuffix[combined / 3]);
while (r.length() > mMaxLength || r.matches("[0-9]+\.[a-z]")) {
r = r.substring(0, r.length() - 2) + r.substring(r.length() - 1);
}
return r;
}
我希望输出是
- 812rb,
- 8.12jt,
- 8.12m,
- 8.12t
提前致谢
假设 mFormat.formatter(number);
做对了 (5000.0 -> "5k"),那么:
private String makePretty(double number) {
String r = mFormat.format(number);
if (r.indexOf("k") > 0) {
r = r.replace("k", "rb");
} else if (r.indexOf("m") > 0) {
r = r.replace("m", "jt");
} else if (r.indexOf("b") > 0) {
r = r.replace("b", "m")
}
return r;
}