Java字符串format-用户号补齐格式化应用

来源:互联网 发布:java开发平台结构图 编辑:程序博客网 时间:2024/05/21 11:19

应用场景

在实际生产中,我们经常遇到这样的情况,就是类似生成用户号的标准化字符串。比如,生成一个以1开头,中间为0,后面递增的11位数字:10000000001、10000000002、10000000003……

生成这样的用户号的好处是格式统一,而且能够很清楚的看出此用户号的含义。比如以1开头的为用户号、以2开头的为企业号、以3开头的为商户号等等。

生成用户号后面的顺序数字有很多办法,比如采用数据库的自增属性,采用zookeeper的锁机制等等。但通过他们拿到的往往只是个顺序的数字,位数和前缀并不是逾期的格式。下面就简单介绍一下如何方面的将顺序数字生成标准格式的用户号。

实例

下面以生成用户号和商户号的实例具体说明:

package com;/** * @author 二师兄 * @date 2017/3/3 */public class Test {    public static void main(String[] args) {        Long num1 = 1024L;        Long num2 = 2048L;        System.out.println("用户号为:" + getUserNo(1,num1));        System.out.println("企业号为:" + getUserNo(2,num2));    }    /**     * 根据前缀和序列号生成用户号     * @param preNumber 前缀     * @param index 序列     * @return     */    public static String getUserNo(int preNumber,Long index){        return String.format("%d%010d",preNumber,index);    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

打印结果为:

用户号为:10000001024企业号为:20000002048
  • 1
  • 2
  • 1
  • 2

方法说明

很明显,上面的例子使用了String.format方法来格式化字符串,省去了各种判断比较拼接字符串的步骤,精简了代码。

String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。

String.format("%d%010d",preNumber,index)
  • 1
  • 1

(1)第一个%d代表整数类型(十进制),是preNumber的占位符,拼接字符串的时候会用preNumber的值进行替换。 
(2)第二个%010d,前面第一个0代表:数字前面补0;后面的10代表字符总长度为10,d代表整数类型。这个表达式的整体含义就是,用index的值来替换此处表达式,如果index的长度不足10位,则在index的前面用0补齐。

通过以上方法,可以轻易的生成一个其他类似的指定格式的字符串。发挥你的想象力吧。

0 0
原创粉丝点击