日期:2014-05-20  浏览次数:20608 次

字符串格式化问题
我想把输出的数字,如果是1位的,格式化成两位,两位的不变
比如,1变成01,2变成02,10不变
是用format么,怎么用?

------解决方案--------------------
最简单的方法:(i只是为了取值,你可以根据你自己的数据进行输出!我想用不着那么麻烦)
for(int i = 0;i <100;i++)
{
if(i <10) System.out.println( "0 "+i);
if(i> 9) System.out.println(i);
}
------解决方案--------------------
/**
* 在字串的左邊補0
* @param str 要補0的字串
* @param len 補0后的字串的長度
* @return 補0后的字串
*/
protected String Padl(String str, int len) {
int lenStr = str.length();
StringBuffer sb = new StringBuffer(str);
while (lenStr < len) {
sb.insert(0, "0 ");
lenStr++;
}
return sb.toString();
}
------解决方案--------------------
最简单应该是正则表达式吧:(
String number = "2 ";
System.out.println(number.replaceAll( "^([1-9])$ ", "0$1 "));

------解决方案--------------------
JDK 1.5 以上版本:
int num = 1;
String str = String.format( "%02d ", num);

JDK 1.5 以下版本:
DecimalFormat df = new DecimalFormat( "00 ");
int num = 2;
String str = df.format(num);