Java字符串数字左右补全0的四种方式

 更新时间:2023年08月19日 15:27:18   作者:studyday1  
这篇文章主要给大家介绍了关于Java字符串数字左右补全0的四种方式,在编程中有时候我们需要对一个字符串进行字符填充,以满足某些特定的要求,其中补全0是一种常见的需求,需要的朋友可以参考下

业务场景:

我们在做一个单号字段设计的时候,经常需要用到这种格式,比如no2023062800001,no2023062800002,no2023062800003,单号累计递增,前缀是指定的字符串+当前日期+数字五位,不满五位左边补0

方式一:String.format

%06d的定义:

0代表前面要补的字符

6代表字符串长度

d表示参数为整数类型

 //左边加0
String 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拼接 

/**
     * 给字符串的左补0或右补0
     * @param str  要处理的字符串
     * @param length 补0后字符串总长度
     * @param type  1-左补0  2-右补0
     * @return
     */
    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

附:java字符串不足长度自动补0

1、方法一

import org.apache.commons.lang3.StringUtils;
StringUtils.leftPad(String str, int size, String padStr);
例子:
StringUtils.leftPad("123", 6, "0")  ==>  000123
StringUtils.leftPad("123456", 6, "0")  ==>  123456

2、方法二

String str = "123"
String s = String.format("%06d", str);  //s="000123"
%06d的定义:
0代表前面要补的字符
6代表字符串长度
d表示参数为整数类型

总结 

到此这篇关于Java字符串数字左右补全0的四种方式的文章就介绍到这了,更多相关Java字符串数字左右补0内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring与Mybatis的整合方法有哪些

    Spring与Mybatis的整合方法有哪些

    本文主要给大家介绍Spring与Mybatis的三种常用整合方法,需要用到的整合框架包mybatis-spring.jar,对spring mybatis整合感兴趣的朋友可以参考下本文
    2015-10-10
  • java实现简单的英文文本单词翻译器功能示例

    java实现简单的英文文本单词翻译器功能示例

    这篇文章主要介绍了java实现简单的英文文本单词翻译器功能,涉及java文件读取、字符串分割、遍历、判断等相关操作技巧,需要的朋友可以参考下
    2017-10-10
  • java 读写文件[多种方法]

    java 读写文件[多种方法]

    前两天用到读写文件的操作,上网搜了一些这方面的资料。很有用的。
    2008-11-11
  • spring security中的默认登录页源码跟踪

    spring security中的默认登录页源码跟踪

    原来Spring Security有一个默认的WebSecurityConfigurerAdapter,发现其中有一个init方法,于是在这个方法打了断点,在应用启动的时候进行跟踪,这篇文章主要介绍了spring security之 默认登录页源码跟踪,需要的朋友可以参考下
    2021-11-11
  • 解决在微服务环境下远程调用feign和异步线程存在请求数据丢失问题

    解决在微服务环境下远程调用feign和异步线程存在请求数据丢失问题

    这篇文章主要介绍了解决在微服务环境下远程调用feign和异步线程存在请求数据丢失问题,主要包括无异步线程得情况下feign远程调用,异步情况下丢失上下文问题,需要的朋友可以参考下
    2022-05-05
  • Java Stream流使用最多的方式示例详解

    Java Stream流使用最多的方式示例详解

    在 Java 编程中,Stream 流提供了一种高效、便捷的方式来处理集合数据,本文将详细介绍 Java 中 Stream 流的用法,包括基础用法、中级用法、高级用法以及一些特殊方法的使用,感兴趣的朋友一起看看吧
    2024-12-12
  • Spring Security登录添加验证码的实现过程

    Spring Security登录添加验证码的实现过程

    这篇文章主要介绍了Spring Security登录添加验证码的实现过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Java:不支持发行版本5的超详细简单解决方案

    Java:不支持发行版本5的超详细简单解决方案

    发行版本5是Java5,已经是十多年前的版本了,现在已经不再被支持,如果您使用的是旧版的Java开发工具,可能会出现这样的错误,这篇文章主要给大家介绍了关于Java:不支持发行版本5的超详细简单解决方案,需要的朋友可以参考下
    2024-01-01
  • java8版本base64加密解密的实例

    java8版本base64加密解密的实例

    下面小编就为大家分享一篇java8版本base64加密解密的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • String StringBuilder StringBuffer区别以及源码分析

    String StringBuilder StringBuffer区别以及源码分析

    string是C++标准库的一个重要的部分,主要用于字符串处理。可以使用输入输出流方式直接进行string操作,同时,C++的算法库对string类也有着很好的支持,并且string类还和c语言的字符串之间有着良好的接口
    2021-06-06

最新评论