三位一组 生成一个部门下的子部门的EnCode,要求根据已有子部门的Encode增长+1,或填空中间空值.如:
String str = "001";//父类部门
String s[] = {"001001",001003","001004", "001005","001001001" };//子部门编码
则要生产的code为001002如:
String str = "001";//父类部门
String s[] = {"001001",001002",001003","001004", "001005","001001001" };//子部门编码
则要生产的code为001006没头绪,请各位高手指点!
String str = "001";//父类部门
String s[] = {"001001",001003","001004", "001005","001001001" };//子部门编码
则要生产的code为001002如:
String str = "001";//父类部门
String s[] = {"001001",001002",001003","001004", "001005","001001001" };//子部门编码
则要生产的code为001006没头绪,请各位高手指点!
2. long l =Long.parseLong(s[i]) - Long.parseLong(s[i-1])
3. decide which number you should insert, according to l. For instance:
if l == 2, it means there should be one code between s[i] and s[i-1].
if l == 1, it means you need to add one at the end of this array.
public String getCode(){
String str = "001001"; String s[] = { "001", "001001","001002","001003","001004", "001005","001001001","001001003" ,"001001004" };
List it =new ArrayList(); //子部门集合
for (int i = 0; i < s.length; i++) {
String st="";
if (str.length() == 3) {
st = s[i].substring(0, 3);
}
else if (str.length() == 6 && s[i].length() > str.length()) {
st = s[i].substring(0, 6);
}
else if (str.length() == 9 && s[i].length() > str.length()) {
st = s[i].substring(0, 9);
}
else if (str.length() == 12 && s[i].length() > str.length()) {
st = s[i].substring(0, 12);
}
else if (str.length() == 15 && s[i].length() > str.length()) {
st = s[i].substring(0, 15);
}
if (str.equals(st) && s[i].length()==str.length()+3 ) {//筛选子类
Integer zstr=Integer.valueOf(s[i].substring(str.length(), str.length()+3));//转换为Integer类型
it.add(zstr);//添加子类
}
}
int num=0;
String stri="";
String code="";
for (int k = 0; k < it.size(); k++) {
int inte =((Integer)it.get(k)).intValue();
int inte2 =0;
if(k<it.size()-1){
inte2 =((Integer)it.get(k+1)).intValue();
}
if(inte2-inte>1){//插空隙
num=inte+1;
stri=String.valueOf(num);
if(stri.length()==3){
code=str+stri;
return code;
}else if(stri.length()==2){
code=str+"0"+stri;
return code;
}else if(stri.length()==1){
code=str+"00"+stri;
return code;
}
}else{
num=((Integer)it.get(it.size()-1)).intValue()+1;//code+1
stri=String.valueOf(num);
if(stri.length()==3){
code=str+stri;
return code;
}else if(stri.length()==2){
code=str+"0"+stri;
return code;
}else if(stri.length()==1){
code=str+"00"+stri;
return code;
}
}
}
return code;
}