我想问  假如固定字符串的长度,我输入一个字符串,如果不足固定长度,有没有一个方法,能够自动用空格补足长度。比如   我固定字符串长度  N = 8,然后  定义字符串str    (N-str.length())就是差的字符数是否存在一种方法   可以自动补全(N-str.length())个空格来补全长度,可能说的不太清楚~~~~大致就是什么个意思,求解答~~~

解决方案 »

  1.   

    实际工作中,这类需求,用Apache的Common Lang包可以解决大部分问题。LZ的问题,用其中StringUtils类的,leftPad或者rightPad方法来补零或者补空格就ok了。Apache Commons Lang 
      

  2.   

    public static String leftPading(String strSrc,String flag,int strSrcLength) {
            String strReturn = "";
            String strtemp = "";
                int curLength = strSrc.trim().length();
            if (strSrc != null && curLength > strSrcLength) {
                strReturn = strSrc.trim().substring(0, strSrcLength);
            } else if (strSrc != null && curLength == strSrcLength) {
                strReturn = strSrc.trim();
            } else {
              
                    for (int i = 0; i < (strSrcLength - curLength); i++) {
                        strtemp = strtemp + flag;
                    }
                
                strReturn = strtemp + strSrc.trim();                
            }
            return strReturn;        
        }
      

  3.   

    参数说明:
    leftPading(原始字符串,要补的字符,需要长度)
      

  4.   

    have a try
    public static String toSizeString(String s, int size) {
        StringBuilder buf = new StringBuilder(s);
        buf.setLength(size);
        return buf.toString();
    }public static void main(String[] args) {
        String s = "abc";
        int size = 8;
        System.out.printf("before adjust:[%s]\n", s);
        s = toSizeString(s, size);
        System.out.printf("after adjust:[%s]\n", s);
    }
      

  5.   

    import java.util.Scanner;
    public class Test {

    private static int LENGTH = 8;
    private static String SPACE = " "; public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    String str = scan.nextLine();

    if (str == null || str.length() > 8) {
    System.out.println("The length of input string is longger than " + LENGTH + ". Please reinput it:");
    str = scan.nextLine();
    } //第二个参数,0的时候左补空格,0以外时候右补空格
    System.out.println(leftPad(str, 0));
    }

    private static String leftPad(String str, int padMode) {
    String result = str;
    int i = 0;
    while (i < (LENGTH - str.length())) {
    if (padMode == 0) {
    result = SPACE + result;
    } else {
    result = result + SPACE;
    }
    i++;
    }

    return result;
    }
    }