Note que random gera valores entre 0 (inclusive) e 1 (exclusive).
Suponha que o valor de random() fosse zero. O caracter seria 65 + 0 = 65, está certo.
Agora suponha que o valor de random() fosse 1. O caracter resultante seria 65 + 90 = 155, o que não está certo para você.
Pense só um pouquinho - só um pouquinho mesmo. Que conta você precisa fazer para o maior valor dar 90, em vez de 155? Deve faltar uma continha bem bobinha aí.
Preciso agrupar 3 letras e 2 números para formar uma senha.
Blza, gerei lá 3 letras aleatórias e 2 números aleatórios e deu
A, G, F, 4 e 9… preciso que agrupe tudo numa variável e imprima: AGF49
Alguma dica???
Obg!!
JonaTHANNM
faça uma String e concatene tudo nela…
rdmardegam
Jogue td em uma String
Gere seus valores, provalvemente vc ira gerar em um looping.
Tipo nesse código que vc falo ele ta convertendo cada um dos 5 valores aleatórios para char e depois concatenando os 5, certo ?
Eu preciso que convetar somente 3 valores para char, e os outros dois permaneçam int.
Para daí sim concatenar os 5 valores e ficar tipo:
Stringsenha="ABC12";
EDIT
Olha meu código
packagetrabalho2;importjava.util.Scanner;importjava.util.Random;publicclassTrabalho2{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);Stringsenha="";Randomra=newRandom();intsistema=1,valor,i;intsomaValores[]=newint[5];intopcao;System.out.println("SISTEMA DE GERENCIAMENTO DE SENHAS");while(sistema==1){System.out.println("\nEscolha a opcao que deseja executar:");System.out.println("1 para gerar senha normal.");System.out.println("2 para gerar senha prioritaria.");System.out.println("3 para chamar o proximo da fila.");System.out.println("\nSENHA DA VEZ: ");System.out.println("\n0 SAIR");opcao=sc.nextInt();while(opcao!=1&&opcao!=2&&opcao!=3&&opcao!=0){System.out.println("Opcao invalida. Digite novamente:");opcao=sc.nextInt();}if(opcao==0){System.out.println("SISTEMA FINALIZADO");System.exit(0);}if(opcao==1){for(i=0;i<3;i++){valor=(65+ra.nextInt(90-65));somaValores[i]=valor;}for(i=3;i<5;i++){valor=ra.nextInt(10);somaValores[i]=valor;}senha.concat(String.valueOf((char)valor));System.out.println("Sua senha: "+senha);}if(opcao==2){for(i=0;i<3;i++){valor=(65+ra.nextInt(90-65));somaValores[i]=valor;}for(i=3;i<5;i++){valor=ra.nextInt(10);somaValores[i]=valor;}senha.concat(String.valueOf((char)valor));System.out.println("Sua senha: "+senha);}}}}
Ta acusando erro no senha.concat…
Fala que a variavel valor não foi inicializada.
JonaTHANNM
o que ele quis dizer com valor, é no caso " A B C 1 2" entendeu ?
vc vai ter que ir percorrendo os valores da senha e ir concatenando…
K
kolling
Eu gero os 5 valores como números.
E armazeno eles no vetor de inteiros:
Depois de gerar os 5 quero passar os valores que estão nas posições 0, 1 e 2 para char.
Aí sim concatenar os recém valores char com os valores das outras posições.
Ficando ABC12.
Não sei se é isso que vcs estão me expicando como fazer mas eu não entendi ^^