Java给整数部分的字符串加上千分位分隔符
本来想网上找个例子,结果让人很失望,网上的大部分用的DecimalFormat 、NumberFormat,我随便搞了一个长点的字符串,发现大部分都有小数进度问题。
而且网上的人,都不测试的,写的例子明显不打算在生产上跑,所以还是自己写了一个。
package com.test; import java.text.ParseException;
import java.util.ArrayList; public class FormatNumber {
/**
* @Title: addThousandSeparator
* @Description: 格式化数字为千分位
* @param text
* @return 设定文件,由于double的位数有限制,所以这里自己拆分的方式来做。
* @return String 返回类型
*/
public static String addThousandSeparator(String text) {
if (text == null) {
return null;
}
int index = text.indexOf(".");
if (index > 0) {
String integerPartial = text.substring(0, index);
String decimalPartial = text.substring(index);
return addThousandSeparatorForInteger(integerPartial) + decimalPartial;
} else {
return addThousandSeparatorForInteger(text);
}
} // 只给整数加千分位分隔符
public static String addThousandSeparatorForInteger(String text) {
int index = text.indexOf(".");
if (index != -1) {
return text;
} else {
int length = text.length();
ArrayList<String> stringContainer = new ArrayList<String>();
while (length > 3) {
stringContainer.add(text.substring(length - 3, length));
length = length - 3;
}
stringContainer.add(text.substring(0, length)); // 将最前面的小于三个数字的也加入到数组去
StringBuffer buffer = new StringBuffer();
for (int i = stringContainer.size() - 1; i >= 0; i--) {
buffer.append(stringContainer.get(i) + ",");
}
buffer.deleteCharAt(buffer.length() - 1);
return buffer.toString();
}
} public static void main(String[] args) throws ParseException {
System.out.println(FormatNumber.addThousandSeparator(".331234567"));
System.out.println("length:" + "1324678881122.331234567".length());
System.out.println("index:" + "1324678881122.331234567".indexOf("."));
System.out.println(FormatNumber.addThousandSeparator("1324678881122.331234567"));
/**
* 结果如下: length:23 index:13 1,324,678,881,122.331234567
*/ System.out.println("length:" + "1324678881122.331234567".length());
System.out.println("index:" + "1324678881122.331234567".indexOf("."));
System.out.println(FormatNumber.addThousandSeparator("1324678881122"));
System.out.println(FormatNumber.addThousandSeparator("324678881122"));
System.out.println(FormatNumber.addThousandSeparator("22"));
System.out.println(FormatNumber.addThousandSeparator(""));
System.out.println(FormatNumber.addThousandSeparator(" "));
System.out.println(FormatNumber.addThousandSeparator(".331234567"));
System.out.println(FormatNumber.addThousandSeparator("0.331234567"));
System.out.println(FormatNumber.addThousandSeparator(null));
} }
Java给整数部分的字符串加上千分位分隔符的更多相关文章
- 【Java】给整数加上千分位分隔符
package com.testEmp; import java.text.DecimalFormat; public class NumberFormat { public static void ...
- 用robotframework 标准库String解决由于存在千分位分隔符导致两个数值不相等的问题。
在编写robotframework自动化断言的过程中,我遇到了如下问题: 我想写一个两个金额判断是否相等的断言,其中一个金额是展示字段存在千分位分隔符,另一个金额是input带入字段,没有千分位分隔符 ...
- sql数值显示成千分位分隔符的形式
), )--带小数点 ), ),'.00','')--不带小数点
- 数字千分位处理,number.js,js保留两位,整数强制保留两位小数
杨龙飞 杨龙飞 杨龙飞 杨龙飞 杨龙飞 杨龙飞 官方文档:https://www.customd.com/articles/14/jquery-number-format-redux 1.千分位 $. ...
- input输入框数字转带千分位的字符串
数字转带千分位的字符串 思路 先获取要转换的数字,对其进行分割 小数部分具体需要保留多少位,具体处理 整数部分用正则做替换 将小数部分和整数部分合计 代码 注意: 本文是基于 jQuery 写的,稍稍 ...
- [C#]将千分位字符串转换成数字
关键代码: /// <summary> /// 将千分位字符串转换成数字 /// 说明:将诸如"–111,222,333的千分位"转换成-111222333数字 /// ...
- [java] 将整数在千分位或万分位以逗号分隔表示
简单使用DecimalFormat的功能就能做到了,代码如下: package com.testEmp; import java.text.DecimalFormat; public class Nu ...
- java让数字显示千分位 mark
/** * 格式化数字为千分位显示: * @param 要格式化的数字: * @return */ public static String fmtMicrometer(String text) { ...
- java工具类 --千分位方法
/** * 千分位方法 * @param text * @return */ public static String fmtMicrometer(String text) { DecimalForm ...
随机推荐
- 【SpringCloud】初识springCloud
转载来源:https://maimai.cn/article/detail?fid=1149221357&efid=lL_Z3WzTyUDLAjQwrNrIsw 概述 毫无疑问,Spring ...
- 生产环境部署MongoDB副本集(带keyfile安全认证以及用户权限)
本文同步于个人Github博客:https://github.com/johnnian/Blog/issues/8,欢迎留言. 安装软件包:mongodb-linux-x86_64-3.4.1.tgz ...
- DevExpress控件使用方法:第一篇 gridControl详解
GridControl (1)层次设计器 有五种视图模式,banded gridview多行表头,数据还是一行一组,最靠近数据的表头与数据一一对应:advanced banded gridview多行 ...
- taro 开发注意点
taro 开发注意点: 注意点 原因 如果要支持 React Native 端,必须采用 Flex 布局,并且样式选择器仅支持类选择器,且不支持 组合器 Taro RN 端是基于 Expo,因此不支持 ...
- Python程序的执行过程 解释型语言和编译型语言
转载地址:http://blog.csdn.net/lujiandong1/article/details/50067655 1. Python是一门解释型语言? 我初学Python时,听到的关于Py ...
- golang语言并发与并行——goroutine和channel的详细理解(一) 转发自https://blog.csdn.net/skh2015java/article/details/60330785
如果不是我对真正并行的线程的追求,就不会认识到Go有多么的迷人. Go语言从语言层面上就支持了并发,这与其他语言大不一样,不像以前我们要用Thread库 来新建线程,还要用线程安全的队列库来共享数据. ...
- 四旋翼基础算法学习2-IMU输入滤波算法
前言: 处理器读取陀螺仪加速度计数据后首先需要对数据进行滤波处理,此文分析比较几种常用的滤波算法. 参考学习:四轴加速度计滤波 IMU: IMU使用MPU9250(即MPU6500),设置加速度量程± ...
- Selenium2+python自动化38-显式等待(WebDriverWait)
From: https://www.cnblogs.com/yoyoketang/p/6517477.html 前言: 在脚本中加入太多的sleep后会影响脚本的执行速度,虽然implicitly_w ...
- pytest学习笔记
From: https://blog.csdn.net/gaowg11/article/details/54910974 由于对测试框架了解比较少,所以最近看了下pytest测试框架,对学习心得做个记 ...
- 关于Javascript闭包(Closure)
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域 ...