ta, vocês vao me achar o cara mais besta da terra, mas consegui fazer meu primeiro codigo… quer dizer… peguei um feito e modifiquei, mas consegui deixar como eu imaginava… ou melhor… quase… rss…
segue ele ai em baixo… e logo depois me ajudem a fazer o que realmente quero
[code]
import javax.swing.JOptionPane;
public class Cripitografa {
public static void main( String[] args ) {
String entrada;
int x ;
int digito1;
int digito2;
int digito3;
int digito4;
entrada = JOptionPane.showInputDialog( " ! Digite o numero de 4 digitos a ser criptografado ! " );
x = Integer.parseInt( entrada );
digito1 = ( x + 1 ) ;
digito2 = ( x + 1 ) ;
digito3 = ( x + 1 ) ;
digito4 = ( x + 1 ) ;
JOptionPane.showMessageDialog( null,
" Número cripitografado = " + digito3 + digito4 + digito1 + digito2, " ! Número Original ! " + x ,
JOptionPane.INFORMATION_MESSAGE );
System.exit( 0 );
}
} [/code]
Ta… ele pega o numero inteiro e soma… porem… eu gostaria que ele pegasse apenas um numero e somasse… exemplo
tenho o numero 1212
queria que criptografado ficasse 2323… nao pegasse o numero inteiro, e sim quebrasse numero por numero e assim somasse cada um…
e ele ta ficando 1213121312131213
mas to quase consgeuindo…
agora… como faço para nao especificar a quantidade de numero… por exeplo… tenho uma serie com 125 numero e quero criptografar… ou eu poderia ter 100 ou só 10… deixar o string em aberto para receber quanto numeros eu quisesse (acho que falei certo… rs)
int numero = 1212;// o numero que voce quer criptografar
int util = numero;
String numeroTemp = Integer.toString(numero);
int[] temp = new int[numeroTemp.length()];
String criptografado = " Número cripitografado = ";
for(int i = numeroTemp.length() - 1, j = 0;
i >= 0;
i--, j++)
{
int divisor = (int) Math.pow(10.0, i);
temp[j] = util / divisor;
util %= divisor;
temp[j]++;
/*nao entendi bem seu algoritmo de criptografia, mas isso faz
o equivalente a digito1 = ( x + 1 ) ;, incrementa o digito em 1 unidade,
sem modularizar, ou seja, se o digito for 9, nao vai pra 0, vai pra 10*/
criptografado += ("" + temp[j]);
}
Com relação as letras, tu pode transformar a String em um Array de char, transforma o char em número, criptografa, depois transforma de voltar pra char e concatena!
//Transforma em um array de char
String s = "Criptografia";
char[] caracteres = s.toCharArray();
/*
Nessa parte tu faz a rotina de criptografia.
Tu pode usar o char como se fosse um inteiro, porque ele convertido automaticamente.
Exemplo:
*/
int valor = 0;
char novoChar = '';
String strCriptografado = "";
for(int i = 0; i < caracteres.length; i++)
{
valor = caracteres[i];
//Criptografar "valor"
novoChar = (char)valor; //Aqui o novoChar vai receber o valor criptografado
strCriptografado += novoChar; //Concatena os "novoChar"
}