有一个String 如果长度小于6就在前面补0,让它达到6位。
如果超过六位 就去点前面的,只保留后六位的。
大家帮看一看啊。

解决方案 »

  1.   

    String str = "1234567890";
    int len = str.length();
    if (len > 6) {
      str = str.substring(len - 6);
    } else {
      StringBuffer buff = new StringBuffer();
      for (int i = 0; i < 6 - len; i++) {
        buff.append("0");
      }
      buff.append(str);
      str = buff.toString();
    }
      

  2.   

    这样确实也行,但有没有看起来简洁的format呀?
      

  3.   

    public static String formatString(String str) {
    if(str == null) return null;
    return str.length()>6?str.substring(str.length()-6):new StringBuffer("000000").replace(6-str.length(), 6, str).toString();
    }
      

  4.   

    public class TestStringFormat {     
      public static void main(String[] args) {     
        int youNumber = 19;     
        // 0 代表前面补充0     
        // 4 代表长度为4     
        // d 代表参数为正数型     
        String str = String.format("%02d", youNumber);     
        System.out.println(str); // 01     
      }    
      

  5.   

     public static String formatString(String str) {
          int len = str.length();
           if (len > 6) {
              str = str.substring(len - 6);
           } else {
              StringBuffer buff = new StringBuffer();
           for (int i = 0; i < 6 - len; i++) {
              buff.append("0");
           }
           buff.append(str);
           str = buff.toString();
          }    
       }