在平时处理现金金额显示时,我们经常会遇到这样的问题:从个位开始每隔三位添加一个逗号
可以这样处理:
/**
* 逆序每隔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;
iif(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(",");
}
推荐阅读
- Java|Java基础——数组
- 人工智能|干货!人体姿态估计与运动预测
- java简介|Java是什么(Java能用来干什么?)
- Java|规范的打印日志
- Linux|109 个实用 shell 脚本
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- Spring注解驱动第十讲--@Autowired使用
- SqlServer|sql server的UPDLOCK、HOLDLOCK试验
- jvm|【JVM】JVM08(java内存模型解析[JMM])
- 技术|为参加2021年蓝桥杯Java软件开发大学B组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)