gpt4 book ai didi

java - 如何使用大值格式化程序设置自定义后缀

转载 作者:行者123 更新时间:2023-11-29 04:08:43 26 4
gpt4 key购买 nike

我想使用大值格式化程序设置自定义后缀。它的默认后缀是:

  • k 代表千
  • m 代表百万
  • 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.12吨

尝试将其更改为:

private String[] mSuffix = new String[]{"", "rb", "jt", "m", "t"};

结果是:812r,8.12j,8.12m,8.12吨

这是使用 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.12 米,
  • 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;
}

关于java - 如何使用大值格式化程序设置自定义后缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56519867/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com