问题:如下情况,收到反馈说要把阿拉伯数字换成阿拉伯语
问题的原因是values-ar/strings.xml定义如下:
%1$s表示将第一个参数格式化为字符串,因此格式化参数给的是什么便输出什么,如此处给1000便输出1000。
修改的话就是把%1$s改成%1$d,表示将第一个参数格式化为整数,这个时候我们的String.format将会对数字起作用,并按传递的Locale信息格式化数字为当地语言。
代码中如何修改,直接把需要格式化的地方使用%d替换,如下:
String.format(Locale.getDefault(),"%d", value);
如果要求显示数字而不是阿拉伯语如何做。按如上解决问题的逆向思维,只是代码中可以使用如下2种方式:
String.format(Locale.getDefault(), "%s",value);
或者
String.format(Locale.US, "%d",value);