我目前正在开发一个Android项目,我们在其中使用包含许多数字的字符串数字。
所以我想知道是否有办法将例如1000000000
的字符串数转换为逗号分隔的字符串数例如({{1 }})印度语区域设置格式。
我获得了美国语言环境格式字符串转换,但我想要印度语区域设置格式。
答案 0 :(得分:1)
我会使用Format
类的format("% ,d", number)
方法,确保我使用适当的语言环境初始化Formatter对象(我认为对于印度语来说是en_IN
。)
话虽如此,如果您首先在美国语言环境中发布代码,那么人们会更容易为您提供帮助。
答案 1 :(得分:1)
参考:Formatting a Number Using a Custom Format
private String getFormatedData(String unformatedData) {
if(unformatedData != null) {
try {
//unformatedData.replaceAll(",", "");
Double result = Double.valueOf(unformatedData);
DecimalFormat myFormatter = new DecimalFormat("###,##0.00");
//DecimalFormat myFormatter = new DecimalFormat("#,###,###");
//If you don't want to show .00 format
return myFormatter.format(result);
} catch (NumberFormatException e) {
return unformatedData;
}
} else {
return "0.00";
}
}
使用此方法。
如果您不需要.00值,我认为您必须修改此方法。让我来研究它。
答案 2 :(得分:0)
我认为您需要使用NumberFormat,以便您可以使用用户的当前区域设置来制作一般情况。
我认为这是你目前的情况:
如果要格式化多个数字,获取格式并多次使用它会更有效,这样系统就不必多次获取有关本地语言和国家/地区约定的信息。
NumberFormat nf = NumberFormat.getInstance();
for (int i = 0; i < a.length; ++i) {
output.println(nf.format(myNumber[i]) + "; ");
}
答案 3 :(得分:0)
Pankaj Kumar给出的答案以美国格式输出,不是印度格式。 如果您想要美国格式,可以通过以下代码轻松完成:
NumberFormat.getNumberInstance(Locale.US).format(35634646)
如下所示:Converting Integer to String with comma for thousands
要使用印度格式的逗号获取字符串,您可以尝试使用此手动代码
public String round(String d)
{
ArrayList<Integer> commas=new ArrayList<Integer>();
String output=null;
char[] preDecimal=d.split("[.]")[0].toCharArray();
int i=preDecimal.length-3;
System.out.println(i);
while(i>0)
{
commas.add(i);
i-=2;
}
StringBuilder sb=new StringBuilder();
for(i=0;i<preDecimal.length;i++)
{
sb.append(preDecimal[i]);
if(commas.contains(i+1))
sb.append(",");
}
output=sb.toString();
return output;
}