数字转化成字符串左边自动补零技巧整理.docx
文本预览下载声明
数字转化成字符串左边自动补零方法整理 Java 中给数字左边补0(1)方法一[java] view plaincopyprint?import?java.text.NumberFormat;??public?class?NumberFormatTest?{???public?static?void?main(String[]?args)?{???//待测试数据 ??int?i?=?1;???//得到一个NumberFormat的实例 ??NumberFormat?nf?=?NumberFormat.getInstance();???//设置是否使用分组 ??nf.setGroupingUsed(false);???//设置最大整数位数 ??nf.setMaximumIntegerDigits(4);???//设置最小整数位数 ??nf.setMinimumIntegerDigits(4);???//输出测试语句 ??System.out.println(nf.format(i));???}??}??(2)方法二(个人以为该方法简单有效,但经试验似乎String.format()函数有问题)[java] view plaincopyprint?public?class?TestStringFormat?{public?static?void?main(String[]?args)?{?int?youNumber?=?1;?//?0?代表前面补充0??//?4?代表长度为4??//?d?代表参数为正数型 ??String?str?=?String.format(%04d,?youNumber);?System.out.println(str);?//?0001?}}(3)有时候我们需要固定长度的字符串做流水号,每添加一个记录时流水号的值加1,而流水号的长度保持不变。一般的做法是先把流水号转换为数值型,然后此数值加1,再把数值转换为字符串,长度不够流水号长度时再在前面补0:[java] view plaincopyprint?//流水号加1后返回 ?public?static?String?haoAddOne(String?liuShuiHao){???Integer?intHao?=?Integer.parseInt(liuShuiHao);???intHao++;???String?strHao?=?intHao.toString();???while?(strHao.length()??liuShuiHao.length())???strHao?=?0?+?strHao;???return?strHao;??}??用java中的DecimalFormat,可以简化:[java] view plaincopyprint?//流水号加1后返回,流水号长度为4 ?private?static?final?String?STR_FORMAT?=?0000;??public?static?String?haoAddOne(String?liuShuiHao){???Integer?intHao?=?Integer.parseInt(liuShuiHao);???intHao++;???DecimalFormat?df?=?new?DecimalFormat(STR_FORMAT);???return?df.format(intHao);??}??(4)方法四(该方法也挺简单!)前提是你的长度已经确定!比如规定现实10位![java] view plaincopyprint?int?i_m?=?27?;String?str_m?=?String.valueOf(i_m);String?str?=0000000000;??str_m=str.substring(0,?10-str_m.length())+str_m;??System.out.println(str_m);??以下为String.format函数使用方法介绍:在JDK1.5中,String类增加了一个非常有用的静态函数format(String? format, Objece...? argues),可以将各类数据格式化为字符串并输出。其中format参数指定了输出的格式,是最复杂也是最难掌握的一点,而argues则是一系列等待被格式化的对象。该函数对c语言中printf函数的用法进行了一定的模仿,因此有c语言基础的人学起来会轻松许多。下面我们着重讨论一下format参数的格式及含义。 format参数中可以包含不需要转化的字符串,这些字符串是你写什么,最终就输出什么。同时还包含一些特殊格式的内容,来指定将哪个对象来转换,以及转换成什么形式。这种特殊的格式通通以%index$
显示全部