有个String型商品编号,组成为:商品种类id+数字+字母商品种类id已经得到,假如是888.那么第一个商品编号就是8881a
那么第二个商品编号就是8881b
.......
那么第27个商品编号就是8882a求个程序实现这样的功能

解决方案 »

  1.   

    用的着循环吗?public class Test {
    /**
     * 功能说明 <br>
     * Author:BluesLee <br>
     * CreateDate:2008-7-24 <br>
     * Modifier:BluesLee <br>
     * ModifyDate:2008-7-24 <br>
     * Version:1.1<br>
     * All right reserved.<br>
     *
     * @param args
     */
    public static void main(String[] args) {
    System.out.println(new Test().getCode(888, 1));
    System.out.println(new Test().getCode(888, 2));
    System.out.println(new Test().getCode(888, 3));
    System.out.println(new Test().getCode(888, 27));
    System.out.println(new Test().getCode(888, 100));
    }
    /**
     * 自动生成编号 <br>
     * Author:BluesLee <br>
     * CreateDate:2008-7-24 <br>
     * Modifier:BluesLee <br>
     * ModifyDate:2008-7-24 <br>
     * Version:1.1<br>
     * All right reserved.<br>
     *
     * @param id,商品ID
     * @param n,第n个商品
     * @return 返回生成编号
     */
    public String getCode(int id,int n){
    StringBuffer result=new StringBuffer();
    result.append(id);

    int num=n/26+1;
    char c=(char)(n%26+96);

    result.append(num);
    result.append(c);

    return result.toString();
    }
    }
      

  2.   


    public static void main(String[] args) {
    System.out.println(GetNums(888,0));
    System.out.println(GetNums(888,25));
    System.out.println(GetNums(888,26));
    System.out.println(GetNums(888,27));
    System.out.println(GetNums(888,50));
    System.out.println(GetNums(888,52));
    System.out.println(GetNums(888,53));
    }
    public static String GetNums(int id,int code){
    int a = code%26;
    if(code==0)
    return String.valueOf(id)+"00";
    if(a!=0)
    {
    int nums = (code/26)+1;
    char b = (char)(96+a);
    return String.valueOf(id)+String.valueOf(nums)+String.valueOf(b);
    }
    else{
    int nums = (code/26);
    char b = (char)(96+26);
    return String.valueOf(id)+String.valueOf(nums)+String.valueOf(b);
    }
    }
    88800
    8881y
    8881z
    8882a
    8882x
    8882z
    8883a