Olá pessoal , sou iniciante em programação , no momento estou estudando pelo livro do Deitel. No livro tem um exercicio que pede pro usuário entrar com um numero que 4 digitos e o programa criptografa este numero pegando cada digito (multiplicando por 7) % 10. Ai está o código e gostaria que voce avaliassem e se tiver alguma coisa pra acrescenta ou melhorar, sintam-se a vontade .
import javax.swing.JOptionPane;
public class Criptografa {
public static void main(String[] args) {
String in;
int verificaSeELetra;
//Recebe os dados do Usuario
do{
verificaSeELetra = 0;
do {
in = JOptionPane.showInputDialog("Digite um código");
if (in.length() != 4) {
JOptionPane.showMessageDialog(null, "VOCE DEVE DIGITAR 4 NÃ?MEROS", "ERRO", JOptionPane.INFORMATION_MESSAGE);
}
} while (in.length() != 4 );// laço retete até o usuário digitar 4 caracteres
char temp[] = new char[4];
for (int i = 0; i < in.length(); i++) {
temp[i] = in.charAt(i);
//verifica se nos caracteres digitados se há algum caracter diferente de número
//se houver o laço é iniciado novamente até o usuário digitar somente números.
if(Character.isDigit(temp[i])){
}else{
verificaSeELetra++;
}
}
if(verificaSeELetra > 0){
JOptionPane.showMessageDialog(null, "Somente números", "Erro na digitação", JOptionPane.INFORMATION_MESSAGE);
}
}while(verificaSeELetra > 0);
int[] g = new int[4];
int x = Integer.parseInt(in);
g[0] = ((x / 1000) * 7) % 10;
g[1] = (((x % 1000) / 100) * 7) % 10;
g[2] = (((x % 100) / 10) * 7)% 10;
g[3] = ((x % 10) * 7 ) %10;
JOptionPane.showMessageDialog(null, ""+g[0]+g[1]+g[2]+g[3] );// minha dúvida é que porque e necessario colocar aspas vazia pra poder exibir um int. nao existem outra maneira
}
}// FIM DA CLASSE
