我想写一个公共的方法,把传进来的字符串格式化,例如:1234567890,格式化成:1,234,567,890谢谢

解决方案 »

  1.   

    private String parseInt(Integer total){
    String s = total.toString();
    int len = s.length();

    int i = len%3;

    String m = s.substring(0,i)+",";

    if(i==0){
    m = new String("");
    }

    for(int x = 0; x < len /3; x++){
    m += s.substring(x*3+i,x*3+i+3)+",";
    }

    return m.substring(0,m.length()-1);
    }
      

  2.   

    你是用来表示钱的吗?
    NumberFormat nf = NumberFormat.getCurrencyInstance();
     
    System.out.println(nf.format(123456789));
    输出
    ¥123,456,789.00
      

  3.   

    之前为想用正则替换这个想了好久..public static void main(String[] args) {
    String str = "234344234.5235462";
    System.out.println(method1(str));
    System.out.println(method2(str));
    }



    public static String method1 (String str) {
    DecimalFormat df=new DecimalFormat("#,###.#########");
    BigDecimal bg = new BigDecimal(str);
    return str = df.format(bg);

    }


    public static String method2 (String str) {
    return str = str.replaceAll("(?<=^\\d+)(?=(\\d{3})+(\\.|\\s*$))", ",");

    }
      

  4.   

    楼上的代码貌似没贴完..public static void main(String[] args) {
    String str = "234344234.5235462";
    System.out.println(method1(str));
    System.out.println(method2(str));
    }



    public static String method1 (String str) {
    DecimalFormat df=new DecimalFormat("#,###.#########");
    BigDecimal bg = new BigDecimal(str);
    return str = df.format(bg);

    }


    public static String method2 (String str) {
    return str = str.replaceAll("(?<=^\\d+)(?=(\\d{3})+(\\.|\\s*$))", ",");

    }
      

  5.   

    试试这个
    String pattern ="###,###";
    DecimalFormat df = new DecimalFormat(pattern);
    System.out.println(df.format(1888888888));
    }
      

  6.   

    JDK 自带
    NumberFormat format = NumberFormat.getInstance();
    System.out.println(format.format(1264728341));