Java:将字符串填充到某个点

时间:2014-06-11 19:03:13

标签: java string replace string-length

我正在开展一个项目,但我一度陷入困境。我希望结果字符串总是长128个字符。当我的String更短时,我想用" 0" s替换它。我尝试了很多方法,但没有一个工作,所以我决定在这里问。

这是我尝试过的:

String s = "This is a String!";
if(s.length() < 128){
    s.replace(s.length(), 128, "0");
    System.out.println(s);
}

3 个答案:

答案 0 :(得分:0)

如果你想用零填充你的短字符串:

String s = "SomeTestString!";
if(s.length() < 128) {
   s = String.format("%-128s", s ).replace(' ', '0');
} else {
   s = s.substring(0,128);
}
System.out.println(s);

如果您希望将短字符串替换为零:

String s = "SomeTestString!";
if(s.length() < 128) {
   s = s.replace(s.length(), 128, "0");
} else {
   s = s.substring(0,128) ;
}
System.out.println(s);

如果您希望短字符串有128个字符&#39; 0&#39;:

StringBuffer buf = new StringBuffer(128);
for (int i = 0; i < 128; i++) {
   buf.append("0");
}
System.out.println(buf);

是的,至少我练习了一点:)。

答案 1 :(得分:0)

String s = "This is a String!";
if(s.length() < 128){
   while (s.length <= 128){
      s += "0";
   }
   System.out.println(s);
}

答案 2 :(得分:0)

这是右键填充字符串的一种方法。

public class Snippet {

    public static void main(String[] args) {
        int length = 128;
        String s = "This is a String!";
        System.out.println(new Snippet().rightPadString(s, length, '0'));
    }

    public String rightPadString(String s, int length, char c) {
        if (s.length() < length) {
            StringBuilder builder = new StringBuilder(length);
            builder.append(s);
            for (int i = s.length(); i < length; i++) {
                builder.append(c);
            }
            s = builder.toString();
        } else {
            s = s.substring(0, length);
        }
        return s;
    }
}