問題:如下情況,收到反饋說要把阿拉伯數字換成阿拉伯語
問題的原因是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);