Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 生成带前缀的员工ID_Java - Fatal编程技术网

Java 生成带前缀的员工ID

Java 生成带前缀的员工ID,java,Java,我是java初学者,我想写一个以抽象类Employee.java开始的代码,然后从它扩展到其他类(Engineer.java、technology.java、ServiceManager.java…)。Employee类的属性是ID、Name、Age、salary。我创建了两个方法setAlary()和SetID()抽象。我遇到的问题是关于SetID()方法,我考虑将ID设置为6个字符的数组,前2个字符是前缀,例如,类工程师将从“a”到“D”的字符作为前缀,我们将以“AA0000”开头,然后每次

我是java初学者,我想写一个以抽象类Employee.java开始的代码,然后从它扩展到其他类(Engineer.java、technology.java、ServiceManager.java…)。Employee类的属性是ID、Name、Age、salary。我创建了两个方法setAlary()和SetID()抽象。我遇到的问题是关于SetID()方法,我考虑将ID设置为6个字符的数组,前2个字符是前缀,例如,类工程师将从“a”到“D”的字符作为前缀,我们将以“AA0000”开头,然后每次添加工程师时,最后4个字符将自动递增。告诉ID为“AA9999”的员工,然后第二个字符应切换为“B”,我们将使用相同的过程告诉ID“AD9999”,然后这次下一个员工的ID应该是“BA0000”。到目前为止,我为SetID()方法提供的代码是:

char[]Mat=新字符[6];
Mat[0]='A';Mat[1]='A';
Mat[2]=“0”;Mat[3]=“0”;Mat[4]=“0”;Mat[5]=“0”;
字符[]停止=新字符[6];
停止[0]=“D”;停止[1]='D';停止[2]='9';停止[3]='9';停止[4]='9';停止[5]='9';
字符串M=新字符串(Mat);
字符串Sub=M.substring(2,6);
做{
if(Mat[2]=='9'&Mat[3]='9'&Mat[4]='9'&Mat[5]='9'){
if(Mat[1]=“D”){
int tmp=(int)Mat[0];
++tmp;
Mat[0]=(char)tmp;
Mat[1]=“A”;
Mat[2]=“0”;Mat[3]=“0”;Mat[4]=“0”;Mat[5]=“0”;
}
否则{
int tmp=(int)Mat[1];
Mat[1]=(char)++tmp;
Mat[2]=“0”;Mat[3]=“0”;Mat[4]=“0”;Mat[5]=“0”;
}
}
否则{
int i=整数.parseInt(Sub);
i++;

如果(i你可以通过使用两个变量来简化这个过程,一个是十六进制值,另一个是整数。这里是一个简化的测试版本

int firstBit = 0xaa;
int secondBit = 0;

for (int x = 1; x < 20; x++) {

    System.out.printf("%s%d%n", Integer.toHexString(firstBit), x);
    secondBit++;
    if (secondBit > 5) {
        firstBit++;
        secondBit = 0;
    }
    secondBit++;
}
int firstBit=0xaa;
int第二位=0;
对于(int x=1;x<20;x++){
System.out.printf(“%s%d%n”,整数.toHexString(第一位),x);
第二位++;
如果(第二位>5){
firstBit++;
第二位=0;
}
第二位++;
}
int firstBit = 0xaa;
int secondBit = 0;

for (int x = 1; x < 20; x++) {

    System.out.printf("%s%d%n", Integer.toHexString(firstBit), x);
    secondBit++;
    if (secondBit > 5) {
        firstBit++;
        secondBit = 0;
    }
    secondBit++;
}