android - App crashes with "java.lang.ArrayIndexOutOfBoundsException: length=1; index=1 " only on real device
问题描述
I was programming a function which is replacing for example 1000 for 1K and so on. I dont want to show "00"
after the dot, so I split the variable and if the second part equals "00" it shows only the first part.
This work just as intended on the emulator running Android 10. On my real device (P4XL, Android 10) it crashes with the line shown in the title.
I know that this function is the reason for the crash, because when I comment it out it works on my real device as well, just without the numbers beiing displayed correctly.
Why is it doing this?
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;
}
解决方案
Please give a try to below function which will serve your purpose
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));
}
推荐阅读
- powershell - 如何查看文件,无论何时更改,使用新的附加行并使用 powershell 对其执行一些操作
- chart.js - 打印 chartjs 工具提示
- typescript - 在 package.json 中导入没有 main 的包时避免 ESLint import/no-unresolved 错误
- ios - 当标签栏的标签/视图控制器发生变化时,如何更新标签?(迅速)
- excel - Excel公式:对于列中峰值/谷值的每个实例,获取到下一个峰值/谷值的范围/距离
- python - Heroku App 可以在本地与 Heroku-postgres 交互,但在部署到 Heroku 时不能
- stanford-nlp - 孤立地(在句子之外)标记上的附随词的标记化
- ios - 如何理解 AVPlayerItem 及其与 AVPlayerItemVideoOutput 相关的当前时间
- stenciljs - StencilJS 中的 xml2Js
- python-3.x - 如何使用python打印饼图外的百分比