`

java与JavaScript 将字符串每隔三位添加一个逗号(左往右、右往左)

    博客分类:
  • JAVA
阅读更多
在平时处理现金金额显示时,我们经常会遇到这样的问题:从个位开始每隔三位添加一个逗号
可以这样处理:

/**
	 * 逆序每隔3位添加一个逗号
	 * @param str
	 * 			:"31232"
	 * @return
	 * 			:"31,232"
	 */
	public static String addComma3(String str){
		str = new StringBuilder(str).reverse().toString();     //先将字符串颠倒顺序  
	       String str2 = "";  
	       for(int i=0;i<str.length();i++){  
	           if(i*3+3>str.length()){  
	               str2 += str.substring(i*3, str.length());  
	               break;  
	           }  
	            str2 += str.substring(i*3, i*3+3)+",";  
	       }  
	        if(str2.endsWith(",")){  
	           str2 = str2.substring(0, str2.length()-1);  
	       }  
	        //最后再将顺序反转过来  
	       return new StringBuilder(str2).reverse().toString();
	}
	


/**
	 * 每隔3位添加一个逗号 -- 左 往 右
	 * @param str
	 * 			:12312
	 * @return	
	 * 			: 123,12
	 */
	public static String addComma(String str){
		String newstr = "";
		int size = ((str.length()) % 3 == 0) ? ((str.length()) / 3) : ((str.length()) / 3 + 1);
		for (int i = 0; i < size; i++) {
			int endIndex = (i + 1) * 3;
			if ((i + 1) == size) {
				endIndex = str.length();
			}
			if (i == 0) {
				newstr += str.substring(i, endIndex);
			} else {
				newstr += "," + str.substring(i * 3, endIndex);
			}
		}
		return newstr;
	}


js函数
参数:23456789
结果:23,456,789
function f(n){
	   var b=parseInt(n).toString();
	   var len=b.length;
	   if(len<=3){return b;}
	   var r=len%3;
	   return r>0?b.slice(0,r)+","+b.slice(r,len).match(/\d{3}/g).join(","):b.slice(r,len).match(/\d{3}/g	).join(",");
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics