在Android中将字符串数字转换为逗号分隔的字符串数字

时间:2012-01-09 11:14:50

标签: java android string

我目前正在开发一个Android项目,我们在其中使用包含许多数字的字符串数字。

所以我想知道是否有办法将例如1000000000字符串数转换为逗号分隔的字符串数例如({{1 }})印度语区域设置格式

我获得了美国语言环境格式字符串转换,但我想要印度语区域设置格式。

4 个答案:

答案 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;

}