要求判断一个字段的长度,并补位
例如字段名字为ABC,最大能容纳5个字符
判断ABC长度要是小于5位的话,用A补位
例:输入了12
    补位后为12AAA
请教怎么实现

解决方案 »

  1.   

    /**
         * 以指定的字符右填充
         * 
         * @param s 需要填充的字串
         * @param len 填充后的长度
         * @param c 指定的填充字符
         * @return 右填充零后的字串
         */
        public String padRight(String s, int len, char c) {        if (s == null) {
                s = "";
            }        s = s.trim();
            if (s.length() >= len) {
                return s;
            }        int fill = len - s.length();        StringBuffer d = new StringBuffer(s);
            while (fill-- > 0) {
                d.append(c);
            }        return d.toString();
        }
      

  2.   

    /**
         * 以指定的字符右填充,如果源字符串长度大于等于指定的长度,原样返回,否则补位
         * 
         * @param value  需要填充的字串
         * @param maxLen 填充后的长度
         * @param way    填充字符的方向
         * @return       充后的字串
         */
    public static String addString(String value, int maxLen, String way) {
        int length = maxLen - value.length();
        String ret = value;    char[] letter = new char[length];
        String temp = "";    if (length>0) { //判断要填充的个数
          java.util.Arrays.fill(zero, 'A'); //填充的字符可自定义,也可传入指定的参数
          String temp = new String(letter);
          
          if (way.equals("L"))
             ret = temp + ret; //左补位
          else  
             ret = ret + temp ;//右补位
        } 
        return ret;
      }
      

  3.   

    抱歉,忘记改了一个变量,我原来的程序是补零的,所以也定义成zero了,此处改为letter
    public static String addString(String value, int maxLen, String way) {
        int length = maxLen - value.length();
        String ret = value;    char[] letter = new char[length];
        String temp = "";    if (length>0) { //判断要填充的个数
          java.util.Arrays.fill(letter, 'A'); //填充的字符可自定义,也可传入指定的参数
          String temp = new String(letter);
          
          if (way.equals("L"))
             ret = temp + ret; //左补位
          else  
             ret = ret + temp ;//右补位
        } 
        return ret;
      }
      

  4.   

    填充字符串
    /**
         * 以指定的字符串右填充
         * 
         * @param s 需要填充的字符串
         * @param len 填充后的长度
         * @param c 指定的填充字符串
         * @return 右填充后的字串
    */public String substr(String s, String c,int len) {        if (s == null) {
                s = "";
            }        s = s.trim();        s = s+c;        return s.substring(0,len);
        }
    eg:String ABC="12";
    String s1="ABABABABAB";
    String s2="AAAAA";
    ABC = substr(ABC,s2,5);
    ----------
    12AAA
    ----------
    如果填充的是AB, 长度是10ABC = substr(ABC,s1,10)
    ----------
    12ABABABAB
    ----------如果源字串长度大于所需长度, 返回所需长度字串
    ABC="121212";
    ABC = substr(ABC,s2,5);
    ----------
    12121
    ----------
      

  5.   

    public class Main {    public static void main(String[] args) throws Exception {
            System.out.println(RPad("", "0", 8));
        }    public static String RPad(String targetString, String padString, int length) {
            if (targetString == null || targetString.length() > length
                    || padString == null || "".equals(padString)) {
                return targetString;
            }
            int tempLength = length - targetString.length();
            for (int i = 0; i < tempLength; i++) {
                targetString += padString;
            }
            return targetString.substring(0, length);
        }}RPad("a", "3210", 10)      => "a321032103"
    RPad("asdf", "01", 1)      => "asdf"
    RPad("asdf", "01", 0)      => "asdf"
    RPad("asdf", "", 100)      => "asdf"
    RPad("asdf", null, 100)    => "asdf"
    RPad("asdf", "0", 8)       => "asdf0000"
    RPad(null, "0", 8)         => null
    RPad("", "0", 8)           => "00000000"
      

  6.   

    全英文倒EASY,如果中英文混合就麻烦一些了