【问题标题】:Conversion of string numbers into comma seperated string numbers in Android在Android中将字符串数字转换为逗号分隔的字符串数字
【发布时间】:2012-01-09 11:14:49
【问题描述】:

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

所以我想知道是否有一种方法可以将 字符串数字 (例如 1000000000)转换为 逗号分隔的字符串数字,例如(1,00,00,00,000印度语言环境格式

我得到了 US locale format 字符串转换,但我想要 Indian locale 格式。

【问题讨论】:

标签: java android string


【解决方案1】:

我会使用Format 类的format("% ,d", number) 方法,确保我使用适当的语言环境(我相信对于印度语是en_IN)初始化Formatter 对象。

话虽如此,如果您首先发布代码说明您是如何为美国语言环境执行此操作的,那么人们会更容易帮助您。

【讨论】:

    【解决方案2】:

    参考: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 值,我认为您必须修改此方法。让我来处理它。

    【讨论】:

      【解决方案3】:

      我认为您需要使用NumberFormat,以便您可以使用用户当前的区域设置来进行一般情况。

      我认为这是你目前的情况:

      如果您正在格式化多个数字,那么获取格式并多次使用它会更有效,这样系统就不必多次获取有关本地语言和国家/地区惯例的信息。

       NumberFormat nf = NumberFormat.getInstance();
       for (int i = 0; i < a.length; ++i) {
           output.println(nf.format(myNumber[i]) + "; ");
       }
      

      【讨论】:

        【解决方案4】:

        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;
        
        }
        

        【讨论】:

          猜你喜欢
          • 2012-01-17
          • 2019-11-18
          • 1970-01-01
          • 2020-10-30
          • 2021-12-18
          • 1970-01-01
          • 2020-11-27
          相关资源
          最近更新 更多