【业务功能篇34】Java 字符串数字 左右补全0的几种方式
短信预约 -IT技能 免费直播动态提醒
业务场景: 我们在做一个单号字段设计的时候,经常需要用到这种格式,比如no2023062800001,no2023062800002,no2023062800003,单号累计递增,前缀是指定的字符串+当前日期+数字五位,不满五位左边补0
方式一:String.format
%06d的定义:
0代表前面要补的字符
6代表字符串长度
d表示参数为整数类型
//左边加0String str = String.format("%06d", 12345);System.out.println(str); // 012345 //右加空格String addspace1 = "asd";String addspace2 = String.format("%-12s", addspace1);System.out.println("加空格 start:"+addspace2+":end"); //加空格 start:asd :end//左加空格String addspace2_1 = "asd";String addspace2_2 = String.format("%12s", addspace2_1);System.out.println("加空格 start:"+addspace2_2+":end"); //加空格 start: asd:end
方式二:NumberFormat.getInstance()
//左边加0(1) int i = 12345; // 得到一个NumberFormat的实例 NumberFormat nf = NumberFormat.getInstance(); // 设置是否使用分组 nf.setGroupingUsed(false); // 设置最小整数位数 nf.setMinimumIntegerDigits(6); System.out.println("左加0 start:"+nf.format(i)+":end"); //左加0 start:012345:end
方式三: StringUtils.leftPad
System.out.println(StringUtils.rightPad("123",6,"0")); //123000 System.out.println(StringUtils.leftPad("123",6,"0")); //000123
方式四: 自定义方法 append拼接
public static String addZeroForStr(String str, int length,int type) { int strLen = str.length(); if (strLen < length) { while (strLen < length) { StringBuffer sb = new StringBuffer(); if(type==1){ // 左补0 sb.append("0").append(str); }else if(type==2){ //右补0 sb.append(str).append("0"); } str = sb.toString(); strLen = str.length(); } } return str; } //打印 System.out.println(addZeroForStr("12345",6,1)); //结果0123456
来源地址:https://blog.csdn.net/studyday1/article/details/131441155
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341