Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.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_Oop - Fatal编程技术网

Java 如何生成员工Id?

Java 如何生成员工Id?,java,oop,Java,Oop,因此,我正在创建一个员工工资系统,id要求如下: 长度必须始终为10个字符。前七个字母是名字的前三个字母、中间的首字母(如果没有中间名,则默认为零)和姓氏的前三个字母 最后3个字符是一个递增值,表示前7个字符(例如AAABCCC001、AAABCCC002、XXXYZZZ001、XXX0ZZZ001等)的出现次数 我不知道该怎么做。救命啊 这是我目前掌握的代码: count=1; fnameSubstr= fname.substring(0,3).toUpperCase();

因此,我正在创建一个员工工资系统,id要求如下:

  • 长度必须始终为10个字符。前七个字母是名字的前三个字母、中间的首字母(如果没有中间名,则默认为零)和姓氏的前三个字母
  • 最后3个字符是一个递增值,表示前7个字符(例如AAABCCC001、AAABCCC002、XXXYZZZ001、XXX0ZZZ001等)的出现次数
  • 我不知道该怎么做。救命啊

    这是我目前掌握的代码:

        count=1;
        fnameSubstr= fname.substring(0,3).toUpperCase();
        mInitial= mnames.substring(0,0).toUpperCase();
        lnameSubstr= lname.substring(0,3).toUpperCase();
    
        nameStr=fnameSubstr + mInitial + lnameSubstr + String.valueOf(count).format("%03d", count);
    
        for (Employee e: emp_list){
            if nameStr.equals(id){
                intStr=nameStr.substring(7); //string representing the first 7 chars
                strInt=Integer.parseInt(intStr);//string of the last 3 chars
                if count==strInt{ //compares the count to the int value of the last 3 chars
                    count++;
                    nameStr=fnameSub + mInitial + lnameSub+String.valueOf(count).format("%03d",count);
                }
             }
             else{
                 count=1;
                 nameStr=fnameSub + mInitial + lnameSub + String.valueOf(count).format("%03d", count);
             }
    
    
         }
    
    我不确定我是否在正确的轨道上

  • 使用
    substring
    方法从名称中获取的字母。设置变量

    String fName = //first three letters of the first name;
    String mName = "0";
    String lName = //first three letters of the last name;
    if (/*mName is not null*/){
        mName = //get the middle initial
    }
    
  • 创建一个
    计数器=1
    ,以计算您创建了多少ID。请注意,您可以使用
    String.format(“%03d”,counter)
    将计数器格式化为三位数;最后把你所有的变量都包含进去


  • 请使用下面的代码

    `

    最终结果将是

    DIL0DUR000
    KUT0DIL001
    PANRSAD002
    

    我确信:你不会在这里提出这样的问题。请转到以了解如何/问什么。提示:我们不是一个免费的编码服务。请取消对这些问题的保留,因为所问的问题是正确的。有人能告诉我这有多宽泛吗?我添加了我的代码,以便您可以看到我迄今为止所做的尝试。谢谢。这与我的代码类似。但是,如果前7个字符相同,则id仅递增,而不是每个新id。因此,此处的id为“res4”,因此,如果搜索员工列表并发现res4与现有id的前7个字符匹配,则仅递增。例如,如果某人的id为DDDASSS001,您有另一个以DDDASS开头的id,然后计数将增加到002,但如果创建了另一个唯一id,它将返回到001,例如GGGNAA001。这就是我在使用数据库时遇到的真正问题。Ru?那么你能用java实现随机数生成逻辑吗?事实上,我上面给出的方法可以工作,请尝试检查一下。谢谢。我让它工作了。你帮了大忙。
    DIL0DUR000
    KUT0DIL001
    PANRSAD002