字符串补齐

符串补齐,比如我计算一个字符串的长度,然后和默认长度进行比较,差多少就高位补齐,比如全部补0.有更快的方法吗?除了循环。

 

更快的可能没有了 不过你可以试试org.apache.commons.lang.StringUtils这个类

Java code
?
1
2
3
String test = "3123123" ;
String value = StringUtils.leftPad(test, 10 , "0" );
ystem.out.println(value);


结果就是0003123123

 

2楼无疑是最佳方法,但是如果你只想用jdk里的api的话,我有个方法:

Java code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package testPackage;
public class StringTest {
    public static void main(String[] args) {
        //假设必须15位长
        int fullLength = 15 ;
        //假设输入123456
        StringBuilder input = new StringBuilder( "123456" );
        //预先定义一个15位0
        StringBuilder zero = new StringBuilder( "000000000000000" );
       
        String result = zero.substring( 0 , zero.length() - input.length()) + input;
       
        System.out.println(result);
    }
}

 

二楼的方法挺不好的,apache的那几个工具包挺好使的,不过String类下就有一个格式化的方法:

Java code
?
1
2
3
4
String str = "gr" ;
String res = String.format( "%5s" , str);
res = res.replaceAll( "\\s" , "1" );
System.out.println(res); //----------结果:111gr

 

/**
     * 补齐不足长度
     * @param length 长度
     * @param number 数字
     * @return
     */
    private String lpad(int length, int number) {
        String f = "%0" + length + "d";
        return String.format(f, 0);
    }


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值