巧妙的解决办法:
(1)使用String.format()函数将str左填充空格;
(2)使用String.replace()函数,将空格转换为指定填充字符。
具体实现代码如下所示:
package UseStringFormat;
public class UseStringFormatLeftPadding {
//将给定字符串str左填充"0",直到str的位数等于len
public static String leftPaddingZero(String str,int len){
//判断str字符串是否为空或者null
if(str != null && !"".equals(str)){
if(str.length() < len){//字符串长度小于指定长度,需要左填充
//1.使用字符串的格式化,先左填充空格
String format = "%" + len + "s";
String tempResult = String.format(format, str);
//2.使用String的replace函数将空格转换为指定字符即可
String finalResult = tempResult.replace(" ", "0");
return finalResult;
}else{
return str;
}
}else{
return "左填充的字符串不能为空!";
}
}
public static void main(String[] args) {
//测试
String str = "adcde";
int len = 10;
System.out.println(leftPaddingZero(str,len));
//Part2:整数左填充
/*int num = 123;
System.out.println(String.format("%010d",num));*/
}
}
最终的输出结果为:00000adcde
通过这种办法,可以省去for循环替换,提高效率!