【问题标题】:App crashes with "java.lang.ArrayIndexOutOfBoundsException: length=1; index=1 " only on real device应用程序仅在真实设备上因“java.lang.ArrayIndexOutOfBoundsException: length=1; index=1”而崩溃
【发布时间】:2020-04-19 21:33:50
【问题描述】:

我正在编写一个函数,例如将 1000 替换为 1K 等等。我不想在点之后显示"00",所以我拆分了变量,如果第二部分等于“00”,它只显示第一部分。

这项工作在运行 Android 10 的模拟器上按预期工作。在我的真实设备(P4XL、Android 10)上,它崩溃并显示标题中显示的行。

我知道这个函数是导致崩溃的原因,因为当我将它注释掉时,它也可以在我的真实设备上运行,只是没有正确显示数字。

为什么要这样做?

public String number_uppercase(int input){
    double input_double = (double) input;
    if (input < 1000){
        number_uppercase_cache = df.format(input_double);
        number_uppercase_ending = "";
    }
    if (input >= 1000 && input < 1000000){
        number_uppercase_cache = df.format(input_double/1000);
        number_uppercase_ending = " K";
    }
    if (input >= 1000000 && input < 1000000000){
        number_uppercase_cache = df.format(input_double/1000000);
        number_uppercase_ending = " mio";
    }
    if (input >= 1000000000){
        number_uppercase_cache = df.format(input_double/1000000000);
        number_uppercase_ending = " mrd";
    }

    number_uppercase_split_part_1 = number_uppercase_cache.split("\\.")[0];
    number_uppercase_split_part_2 = number_uppercase_cache.split("\\.")[1];

    if(number_uppercase_split_part_2.equals("00")){
        number_uppercase_output = number_uppercase_split_part_1 + number_uppercase_ending;
    } else {
        number_uppercase_output = number_uppercase_split_part_1 + "." + number_uppercase_split_part_2 + number_uppercase_ending;
    }
    return number_uppercase_output;
}

【问题讨论】:

标签: android variables split android-emulator


【解决方案1】:

请尝试以下功能,这将有助于您的目的

private String formatNumber(long _number) {
    if (_number< 1000) 
        return "" + _number ;
    else
    int exp = (int) (Math.log(_number) / Math.log(1000));
    return String.format("%.1f %c", _number/ Math.pow(1000, exp), "kMGTPE".charAt(exp-1));
}

【讨论】:

  • 还有一个问题,如果不需要,有没有办法将点后面的 0 删除?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-05
  • 2021-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多