Parabéns pelas conclusões e obrigado pela gentileza de fazer o algoritimo !
J
juniorsatanas1 like
package gera;
public class Gera {
publicstaticvoidmain(String[]args){Stringmatricula="90384019";Stringdigito="1";intquantidade=100;intcontador=1;// retorna desde o primeiro digito até o sexto;StringprefixoString=matricula.substring(0,6);// retorna o último digito independente do tamanho da stringStringsufixoString=matricula.substring(matricula.length()-1);// convertemos prefixo de string para int para poder incrementá-lo// caso sufixoString seja igual a "X"intprefixoInt=Integer.parseInt(prefixoString);while(contador<quantidade){contador++;switch(sufixoString){case"9":sufixoString="X";break;case"X":sufixoString="0";prefixoInt+=1;break;default:// convertemos sufixoString para int para poder somá-lo com um// e após a soma o transformamos de novo em stringintsufixoInt=Integer.parseInt(sufixoString);sufixoString=String.valueOf(sufixoInt+1);break;}StringnovaMatricula=prefixoInt+digito+sufixoString;System.out.println(novaMatricula);
/*====================================================================================================================GERADORDEMATŔICULA=================================Pesquisaaultimamatrículabaseadonotipo,1tercerizado2cooperado,gerandobaseadonaquantidadesolicitada*/privateListgerarmatriculaPOST(Integerpardigito,Integerparquantidade){//pesquisa a ultima matrícula gerada, digito define se tercerizado ou cooperadoStringhql=“SELECTmax(matricula)FROMGeradorWHEREdigito=:pardigito”;Queryquery=getEntityManager().createQuery(hql);query.setParameter(“pardigito”,pardigito);Stringmatricula=(String)query.getSingleResult();Integerdigito=pardigito;Integerquantidade=parquantidade;Integercontador=0;// retorna desde o primeiro digito até o sexto;StringprefixoString=matricula.substring(0,6);// retorna o último digito independente do tamanho da stringStringsufixoString=matricula.substring(matricula.length()-1);// convertemos prefixo de string para int para poder incrementá-lo// caso sufixoString seja igual a "X"intprefixoInt=Integer.parseInt(prefixoString);//intera a quantidade de matrículas solicitadasListlist=newArrayList<>();while(contador<quantidade){contador++;switch(sufixoString){case“9”:sufixoString=“X”;break;case“X”:sufixoString=“0”;prefixoInt+=1;break;default:// convertemos sufixoString para int para poder somá-lo com um// e após a soma o transformamos de novo em stringintsufixoInt=Integer.parseInt(sufixoString);sufixoString=String.valueOf(sufixoInt+1);break;}StringnovaMatricula=prefixoInt+“”+digito+“”+sufixoString;//retorna a lista de matrículalist.add(novaMatricula);}returnlist;}