java字符串数字补齐位数详解
作者:王小工
这篇文章主要介绍了java字符串数字补齐位数,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
java字符串数字补齐位数
在Java中实现字符串位数补齐主要有以下几种常用方法,可根据不同场景选择使用:
一、使用String.format()方法
- 1. 左补齐(右侧补空格)
String result = String.format("%10s", "hello"); // 总长度10,左侧补空格:ml-citation{ref="5" data="citationList"}
- 2. 右对齐(左侧补零)
String str = String.format("%06d", 12345); // 输出"012345":ml-citation{ref="5,7" data="citationList"}
- 3. 自定义补位字符
通过替换空格实现其他字符补齐:
String res = String.format("%5s", "gr").replace(' ', '1'); // 输出"111gr":ml-citation{ref="4" data="citationList"}
二、Apache Commons Lang库方法
- 使用StringUtils.leftPad()实现左补齐:
String value = StringUtils.leftPad("3123123", 10, "0"); // 输出"0003123123":ml-citation{ref="4" data="citationList"}
三、Java 11+的String.repeat()方法
- 适用于已知需要补足的具体字符数:
String padding = " ".repeat(16 - originalStr.length()); String result = originalStr + padding; // 右补空格至16位:ml-citation{ref="3" data="citationList"}
四、循环遍历实现
- 通过StringBuilder动态构建补位字符串:
public static String padString(String input, char padChar, int length) { StringBuilder result = new StringBuilder(input); while (result.length() < length) { result.insert(0, padChar); // 左补指定字符:ml-citation{ref="1" data="citationList"} } return result.toString(); }
五、NumberFormat数字格式化
- 适用于数字类型补零:
NumberFormat nf = NumberFormat.getInstance(); nf.setMinimumIntegerDigits(6); // 设置最小整数位数 String formatted = nf.format(123); // 输出"000123":ml-citation{ref="5" data="citationList"}
选择建议:
- 原生推荐:优先使用String.format(),代码简洁且性能较好57
- 第三方库场景:若项目中已引入Apache Commons Lang,推荐StringUtils.leftPad()4
- 超长补位需求:Java 11+的repeat()方法更高效3
- 历史兼容性:低版本Java可使用循环遍历实现12
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。