如何用标准Java将11位数字格式化为123-456-789-10格式?
用标准Java实现11位数字的分段格式化
针对固定11位数字的分段格式化需求,这里提供几种基于标准Java库的实现方式:
方法一:直接截取字符串拼接
这种方式最直观,适合固定长度的格式化场景,代码简单易懂:
String rawNumber = "12345678910"; String formattedNumber = rawNumber.substring(0, 3) + "-" + rawNumber.substring(3, 6) + "-" + rawNumber.substring(6, 9) + "-" + rawNumber.substring(9); // 输出结果:123-456-789-10
方法二:正则表达式替换
通过正则分组匹配指定长度的数字段,用分隔符替换,适合需要更灵活格式规则的场景:
String rawNumber = "12345678910"; String formattedNumber = rawNumber.replaceAll("(\\d{3})(\\d{3})(\\d{3})(\\d{2})", "$1-$2-$3-$4"); // 输出结果:123-456-789-10
正则说明:(\d{3})匹配连续3位数字,最后(\d{2})匹配剩余2位,$1-$2-$3-$4对应分组的拼接顺序。
方法三:使用MessageFormat格式化
借助Java标准库的MessageFormat,适合多参数组合的格式化场景:
import java.text.MessageFormat; String rawNumber = "12345678910"; String formattedNumber = MessageFormat.format("{0}-{1}-{2}-{3}", rawNumber.substring(0, 3), rawNumber.substring(3, 6), rawNumber.substring(6, 9), rawNumber.substring(9)); // 输出结果:123-456-789-10
内容的提问来源于stack exchange,提问作者EvgenyMalkov
相关产品推荐
相关产品推荐

