直接贴代码:package com.me;public class AlphabelEnum { char []alpha = null;
char []currentValue = null;

public AlphabelEnum(char[] alpha){

this.alpha = alpha;
currentValue = new char[alpha.length]; // 低位在前,高位在后
for(int i = 0; i < alpha.length; i++){
currentValue[i] = 0;// 先以位置相加,然后转换为字母
}
}
/**
 * 自身 + 1
 */
public void addOneStep(){
boolean upWards = true;// 进位标志
for(int i = 0; upWards; i++){
currentValue[i]++;
upWards = currentValue[i] == alpha.length;
currentValue[i] = (char)(currentValue[i] % alpha.length);
}
}
/**
 * 检查是否到底到达本字母表能表示的最大字符串
 * @return 如果还没有到达本字母表能表示的最大字符串,则返回true,否则为false
 */
public boolean isInRange(){

int  alphaLen  = alpha.length ; // 字母表字符个数
char lastCh    = alpha[alphaLen - 1]; // 字母表最后一个字母
boolean isLast = true;
for(int i = 0; i < alphaLen && isLast; i++){
isLast = alpha[currentValue[i]] == lastCh;
}
return !isLast;

}
/**
 * 
 */
public String toString(){

StringBuilder res = new StringBuilder();

for(int i = currentValue.length; i > 0;){
res.append(alpha[currentValue[--i]]);
}
return res.toString();
}
}