将输入的数字字符串加金额分割符,输出

来源:互联网 发布:拍卖系统数据库设计 编辑:程序博客网 时间:2024/06/11 17:50

package test;

public class ConverNumToMoney {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  String a="-1123333.3302";
  System.out.println(convertNumToMoney(a));

 }
 /**
  * 输入金额字符串返回加分隔符的金额
  * @author:DavidTsai
  * @param number
  * @return
  */
 public static String convertNumToMoney(String number){
  String money="";
  String regex1="(-)?[1-9][0-9]*";    //整数部分
     String regex2="[0-9]{1,5}";    //小数部分最多输五位小数
  if(number==null || "".equals(number.trim())){
   return "";
  }
  
  if("0".equals(number.trim())){
   return "0";
  }
  
  String sNumber = number.trim();
  int index = sNumber.indexOf(".");
  int len=sNumber.length();
  if(index<0){//输入的是整数
   if(len<=3 && sNumber.startsWith("0")){
    return "false";
   }else{
    int u=0;
    //得到循环次数
    if(len%3==0){
     u=len/3;
    }else{
     u=len/3+1;
    }
    for (int i = 0; i < u; i++) {
     if(len-3>0){//判断每次循环的截取方法和位置
      money =","+sNumber.substring(len-3, len)+money;
      len=len-3;
     }else if(len>0){
      money=sNumber.substring(0, len)+money;
     }
    }
    return money;
   }
   
  }else if(index==0){//输入.23之类的数
   return "false";
  }else{//输入12.33、-12.33之类的数
   String x = sNumber.substring(0,index);//整数部分
   String y = sNumber.substring(index+1);//小数部分
   if(x.matches(regex1)==false || y.matches(regex2)==false){//例如输入"012-.23"
    return "false";
   }
   boolean minus=false;
   if(x.startsWith("-")){//判断输入的数是否带-号
    minus = true;
   }
   int length=x.length();
   if(length<=4&&minus==true){
    money = sNumber;
   }else{
    int u=0;
    if(length%3==0){
     u=length/3;
    }else{
     u=length/3+1;
    }
    
    for(int i=0;i<u;i++){
     if(length-3>0){
      money = ","+sNumber.substring(length-3,length)+money;
      length = length-3;
     }else if(length>0){
      money = sNumber.substring(0,length)+money;
     }
    }
    money=money+sNumber.substring(index);
   }
   
  }
  return money;
 }

}

 

原创粉丝点击