Oooonde esta o erro?

bem, agora vai sim…
pelo o que entendi, o resultado gerado so pode ter caracteres de a minusculo a b minusculo. o codigo que eu postei la em cima faz o tal algoritmo de cifra de vigenere para todos os caracteres da tabela ascii, para fazer ele funcionar apenas para o alfabeto minusculo, eu modularizei o resultado a 26, e adicionai 97, que é o código do caractere ‘a’. ainda nao sei se vai dar totalmente certo, por isso estou implementando o descriptografador, so pra testar… :grin:
se voce quiser testar tambem, e achar algum erro, posta ele aqui que eu tento ajudar.

import javax.swing.JOptionPane;

public class Vigenere {
    public static void main( String[] args ){
         //palavra que sera encriptada
        String palavra;

         //palavra chave, que sera menor que a palavra acima
        String chave;

         //resultado da encriptacao
        String resultado = "";

        //recebe a palavra a ser encriptada
        palavra = JOptionPane.showInputDialog("Digite o texto a ser criptografado:");

        //recebe a palavra-chave
        chave = JOptionPane.showInputDialog("Insira sua chave:");

         //este laço vai percorrer toda a palavra passada
        for(int i = 0; i < palavra.length(); i++) {
             //a representacao em ascii de um caractere da palavra
             int charPalavra = palavra.charAt(i);

             /*a representacao em ascii do caractere da palavra chave equivalente ao caractere acima, como essa palavra pode ser menor que a palavra principal, o indice do caractere é modularizado, para que não haja StringIndexOutOfBounds. o operador "%" retorna o resto da divisao do primeiro pelo segundo operando*/
             int charChave = chave.charAt(i % chave.length());

             /*a soma dos caracteres acima, acredito que é isso que voce quer, e agora esta modularizada para conter apenas letras do alfabeto minusculo*/
             int result = 97 + ((charPalavra + charChave) % 26);

              //o resultado acima é concateado à String resultante
             resultado += (char) result;
       }

       //aqui é mostrada a string com a palavra criptografada
       JOptionPane.showMessageDialog(null, resultado, "Texto encriptado", JOptionPane.PLAIN_MESSAGE);
    }
}

flw

Exatamente isso que a gente precisa … vou instalar tudo aqui pra conseguir testar … vamo ve qq acontece…

outra coisa, o codido so funciona do jeito que eu to pensado se receber apenas entradas minusculas e que so tenham letras do alfabeto regular(sem acento, cedilha…)

qq coisa posta ai
flw

ei caras,
aquele codigo anterior nao faz o que a cifra de vigenere manda nao…ta meio errado, e se voces quiserem eu explico depois a diferença…o codigo certo é esse aqui:

import javax.swing.JOptionPane;

public class Vigenere {
    //palavra que sera encriptada
    public String palavra;
    //palavra chave, que sera menor que a palavra acima
    public String chave;
    //resultado da encriptacao
    public String resultado = "";

    public void cripto() {
        //recebe a palavra a ser encriptada
        this.palavra = JOptionPane.showInputDialog("Digite o texto a ser criptografado:");

        //recebe a palavra-chave
        this.chave = JOptionPane.showInputDialog("Insira sua chave:");

         //este laço vai percorrer toda a palavra passada
        for(int i = 0; i < palavra.length(); i++) {
             int charPalavra = palavra.charAt(i) - 97;
             
             int charChave = chave.charAt(i % chave.length()) - 97;
             
             int result = ((charPalavra + charChave) % 26) + 97;
             
             this.resultado += (char) result;
       }

       //aqui é mostrada a string com a palavra criptografada
       JOptionPane.showMessageDialog(null, this.resultado, "Texto encriptado", JOptionPane.PLAIN_MESSAGE);
    }

    public void descripto() {
    	//recebe a palavra a ser decriptada
        this.palavra = JOptionPane.showInputDialog("Digite o texto a ser descriptografado:");

        //recebe a palavra-chave
        this.chave = JOptionPane.showInputDialog("Insira a chave usada:");

         //este laço vai percorrer toda a palavra passada
        for(int i = 0; i < palavra.length(); i++) {
             int charPalavra = palavra.charAt(i) - 97;

             int charChave = chave.charAt(i % chave.length()) - 97;

             int temp = charPalavra - charChave;
             
             temp = temp < 0 ? 26 + temp : temp % 26;
             
             int result = 97 + temp;

             this.resultado += (char) result;
       }

       //aqui é mostrada a string com a palavra descriptografada
       JOptionPane.showMessageDialog(null, this.resultado, "Texto encriptado", JOptionPane.PLAIN_MESSAGE);
    }

    public void perguntar() {
        String[] possiveis = {"Criptografar", "Descriptografar"};
          int opcao = JOptionPane.showOptionDialog(null,
						"Que tipo de operação você deseja realizar?",
						" $ Cifra de Vigenere",
						JOptionPane.YES_OPTION,
						JOptionPane.PLAIN_MESSAGE,
						null,
						possiveis,
						null);
      switch (opcao) {
             case 0:
                  this.cripto();
                  break;

             case 1:
                  this.descripto();
                  break;
      }
      System.exit(0);
    }

    public static void main( String[] args ){
    	Vigenere v = new Vigenere();
        v.perguntar();
    }
}

esse vai servir melhor, deem uma olhada
flw

Ta perfeitinho …

Dei uma lida nos seus comentarios e ja consegui fazer o outro … esse é bem mais facil … entra com uma palavra, verifica as letras e soma +3 pra cada letra … tipo … digitando a quando criptografa vira d b vira e e assim vai …

Porém … quando digita as 3 ultimas letras ele cifra pra {|} respectivamente xyz … como faço pra manda o sem vergonha pra abc de novo ?

obs : to abusado ja héin … uhauhauh … sem querer ser chato mas ja sendo … tem como eu aumentar as linhas das caixas onde digito e mostro o texto ? deixando as 2 fixas ? Tipo 15 linhas, 20 linhas ? Se for uma coisa absurda sem problemas … se for coisa de 2 ou 3 palavrinhas sem complicar muito seria bacana … pura e exclusivamente frescura minha … mas desse jeito mesmo ta ótimo … funcionando é o que interessa.

obs2 : Ae Ruy ta vendo … é soh saber explicar q fica mais facil uahuhauhauhuahuha

Vlw javaAdicted

[quote=“LeoFicz”]
tem como eu aumentar as linhas das caixas onde digito e mostro o texto ? deixando as 2 fixas ? Tipo 15 linhas, 20 linhas ? Se for uma coisa absurda sem problemas … se for coisa de 2 ou 3 palavrinhas sem complicar muito seria bacana … [/quote]

nao entendi bem…seria pra deixar as caixas recebendo um numero fixo de caracteres? ou pra fazer tipo uma redaçãozinha onde ta escrito Digite o texto a ser criptografado: e os outros?? se for esse ultimo é nem mais facil, embora o primeiro nao seja tao complicado…

quanto à outra pegunta, o de adicionar 3 em vez de um, acho voce precisa tambem subtrair 94 em vez de 97, jah que voce soma 3 sempre…

da uma checada nas tuas mensagens ae
flw

É tipo assim … não sei se tu manja de html … quando vc vai inserir uma caixa de texto em um formulario vc pode definir quantas linhas e quantas colunas ela vai ter, como no forum quando vc vai responder os topicos, essa caixa que vc digita a mensagem, tem x linhas e x colunas. A caixa do programinha tem soh 1 linha e as colunas tão variando conforme a mensagem que vc digita em cima dela ("Digite o texto … " ), a caixa de resposta do forum é fixa … não importa o quanto vc digite ela não vai mudar as colunas.

Mas isso é soh frescura minha … se for complicado nem esquenta … o principal é ta funcionando e como ta blzinha sem problemas.

O outro la tbem deu certinho … trocando o 97 pelo 94 …

Cara … agora me empolguei pra mexe em java … é muito loco …

Caramba … desculpa o flood … fiz caca … é o sono … mal mesmo … eu citei meu topico anterior … era pra responder … aí não da pra apagar então coloquei a resposta aqui … era pra editar o primeiro mas …

Se eu troco o 97 pelo 94 da pau no abc … mas sem problemas … vou deixar o 97 mesmo e ja é -1 pra encher o saco …

cara, vai complicar um pouquinho sim…
pra comecar, voce nao vai poder usar a classe JOptionPane pra entrada de dados, pelo o que entendi voce quer uma area de texto (JTextArea, em Java), pra poder encriptar um bloco de texto, neh isso? dessa forma tu tem que considerar umas complicacoes adicionais, como por exemplo, o caractere espaço e o caractere linefeed, que nao vao estar dentro desse “range” do alfabeto e provavelmente serao traduzidos de forma errada…
mesmo assim, se voce quiser, eh bom voce dar uma consultada na
API de Java, procura por:
javax.swing.JTextArea - area de texto, ou a caixa multilineada de html
javax.swing.JFrame - janela
javax.swing.JDialog - janela
javax.swing.JButton - botao
javax.swing.JLabel - selo, serve pra mostrar texto e figuras
javax.swing.JPanel - um container, melhora muito o uso de janelas

estuda sobre eventos tambem, aqui no portal deve ter um bom tutorial sobre isso…

espero ter ajudado :grin:

Ajudado ? Ajudo não … c salvo minha vida uhauhauhauh … vo da uma estudada naqueles trecos que vc falou la pra ver se consigo mudar o codigo … conforme for, se não explodir nada aqui eu coloco o codigo pra vc da uma olhada …

Vlw mesmo …

se ainda for de seu interesse, ai vai o codigo comentado:

import javax.swing.JOptionPane; 
    public static void main( String[] args ){ 
         //palavra que sera encriptada
        String palavra; 

         //palavra chave, que sera menor que a palavra acima
        String chave; 

         //resultado da encriptacao
        String resultado = ""; 

        //recebe a palavra a ser encriptada
        palavra = JOptionPane.showInputDialog("Poe seu texto ai!"); 
 
        //recebe a palavra-chave
        chave = JOptionPane.showInputDialog("Insira sua chave!"); 
        
         //este laço vai percorrer toda a palavra passada
        for(int i = 0; i < palavra.length(); i++) { 
             //a representacao em ascii de um caractere da palavra
             int charPalavra = palavra.charAt(i); 

             /*a representacao em ascii do caractere da palavra chave equivalente ao caractere acima, como essa palavra pode ser menor que a palavra principal, o indice do caractere é modularizado, para que não haja StringIndexOutOfBounds. o operador "%" retorna o resto da divisao do primeiro pelo segundo operando*/
             int charChave = chave.charAt(i % chave.length()); 

             /*a soma dos caracteres acima, acredito que é isso que voce quer, e sugiro que isso seja modularizado a 256*/
             int result = charPalavra + charChave; 
             
              //o resultado acima é concateado à String resultante 
             resultado += (char) result; 
       } 

       //aqui é mostrada a string com a palavra criptografada        
       JOptionPane.showMessageDialog(null, resultado); 

} 

espero ter sido mais claro dessa vez…[/quote]

cara… acredito que tenha ficado perfeito… poe ele esta tranformando em ASCII, somando, fazendo loop em cima do texto… porem… me retorna um caracter nao existente… claro… deu um valor acima de Z…

a unica coisa que eu preciso agora… é fazer um “if”… se o valor for maior de Z… ele vai subtrair o valor de Z e somar o valor de A… como faço isso???

eu soh nao entendi uma coisa… como você fez a chave percorrer pelo texto inteiro??? foi esse codigo aki?

(i % chave.length())

valew!

ahauhahuhuauhauha conseguiiiiii

quer dizer… to ali… na boca da garrafa pra pular pra fora…

fiz tuduu… soh q ele ta me retornando um valor (char) estranho… alguem me fala o q ta errado ai…

[code]import javax.swing.JOptionPane;
public class testinho{
public static void main( String[] args ){

    String palavra; 

    String chave; 

    String resultado = ""; 


    palavra = JOptionPane.showInputDialog("Poe seu texto ai!"); 
    chave = JOptionPane.showInputDialog("Insira sua chave!"); 
    
    for(int i = 0; i < palavra.length(); i++) { 
         int charPalavra = palavra.charAt(i); 

         int charChave = chave.charAt(i % chave.length()); 

         int result = charPalavra + charChave; 
         
         if ( result >= 123){
         	result = ( result - 122) + 97;
         }
          
         resultado += (char) result; 
   } 

   JOptionPane.showMessageDialog(null, resultado); 

}
}[/code]

Falando em não entender, tem só 2 ou 3 coisinhas q não entendi bem … da uma olhada :

 public void cripto() {

Q desgraça é esse void ? É tipo uma função ? tipo function cripto () { é isso ?

for(int i = 0; i < palavra.length(); i++) { 
             int charPalavra = palavra.charAt(i) - 97;

int charChave = chave.charAt(i % chave.length()) - 97

E isso aqui ? O i é um contador q vai percorrer o texto digitado, chave é uma variavel, q ta sendo transformada em ascii ( é mesmo ? ) e pegando a letra q ele ta contando no texto q foi digitado e dividindo pelo tamanho da chave ? Ta certo isso ???

[color=“green”]Oi Leo,

Não entendi bem essa sua dúvida mas esse void tá dizendo q a função cripto não retorna nenhum valor… se não me engano é isso… a sua dúvida era essa mesmo??? :roll: [/color]

[quote=“LeoFicz”]Falando em não entender, tem só 2 ou 3 coisinhas q não entendi bem … da uma olhada :

 public void cripto() {

Q desgraça é esse void ? É tipo uma função ? tipo function cripto () { é isso ?

for(int i = 0; i < palavra.length(); i++) { 
             int charPalavra = palavra.charAt(i) - 97;

int charChave = chave.charAt(i % chave.length()) - 97

E isso aqui ? O i é um contador q vai percorrer o texto digitado, chave é uma variavel, q ta sendo transformada em ascii ( é mesmo ? ) e pegando a letra q ele ta contando no texto q foi digitado e dividindo pelo tamanho da chave ? Ta certo isso ???[/quote]

ae leo… arrumei o codigo!! ta funcionando direitinho, nem acredito!!1 uhahuahuauh

soh tem um problema… olhem meu codigo!!

[code]import javax.swing.JOptionPane;
public class testinho{
public static void main( String[] args ){

    String palavra; 

    String chave; 

    String resultado = ""; 


    palavra = JOptionPane.showInputDialog("Poe seu texto ai!"); 
    chave = JOptionPane.showInputDialog("Insira sua chave!"); 
    
    for(int i = 0; i < palavra.length(); i++) { 
         int charPalavra = palavra.charAt(i); 

         int charChave = chave.charAt(i % chave.length()); 

         int result = charPalavra + charChave; 

         result = result;

         if ( result >= 123){ 
          result = ( result - 122) + 97; 
         } 

         if ( result >= 123){ 
          result = ( result - 122) + 97; 
         } 
         
         if ( result >= 123){ 
          result = ( result - 122) + 97; 
         } 
         
         if ( result >= 123){ 
          result = ( result - 122) + 97; 
         } 

         if ( result >= 123){ 
          result = ( result - 122) + 97; 
         } 
         
         if ( result >= 123){ 
          result = ( result - 122) + 97; 
         } 
         
         if ( result >= 123){ 
          result = ( result - 122) + 97; 
         } 
         resultado += (char) result; 
   
   }
   JOptionPane.showMessageDialog(null, resultado); 

}
}[/code]

taum vendo a repetição de if neh??? certo… essa foi a unica maneira que encontrei para jogar o result dentro dos chars…

mas como faço pra transformar akilo em um “if” só???

bom… pelo menos assim ele ta funcionando!! nem acredito!! meu primeiro programa em java!! auhhuahuahuahu

Ae ruy … vo salva sua vida ok ? O javaAdicted posto um código antes que criptografava e descriptografava a paradinha … eu dei uma enxugada naquele e botei só pra criptografa … da um bizu …
O que eu fiz foi colocar um -11 alih onde diz int crip bla bla bla … da funcionando certinho esse ( só 1 duvida … ele pega as letras do texto q o cara colocou e soma com as letras da chave né ? tipo problema como texto e chave como chave ele pega o p e soma com o c … suponhamos q p é 10 e c é 5 da 15 e ele mostra a letra correspondente a posiçao 15 … é isso ? ) Se quiser coloco o de cesar tbem … sem if sem nada ae pra dar uma ajuda …

Oi Marcela … tudo bom ? É a dúvida que eu tinha era isso mesmo … saber o que era o void … então ve se ta certo por favor :

o public cria a função
e o void diz que essa função não retorna nada

( acho q não é bem isso não ) é que to me baseando em javascript, asp essas coisas … que pra criar uma função vc faz function nome_da_função. É por aí ou passei longe ???

Ah … outra coisinha provavelmente rapida ( agora vai começar aparecer duvida q não acaba mais ). O sinal % alih no meio do código o javaAdicted comentou dizendo que era o resto da divisão de algo por algo … como é isso ? Se der um desenho ou algo assim vai funcionar melhor que não sou muito esperto não uhauahuhauha …

Brigado.

import javax.swing.JOptionPane; 

public class Main { 
    public static void main( String[] args ){ 
         //palavra que sera encriptada 
        String texto; 

         //palavra chave, que sera menor que a palavra acima 
        String chave; 

         //resultado da encriptacao 
        String textoCrip = ""; 

        //recebe a palavra a ser encriptada 
        texto = JOptionPane.showInputDialog("ATENÇÃO : Para digitar seu texto, utilize" +
        " apenas caracteres minusculos e sem acento :"); 

        //recebe a palavra-chave 
        chave = JOptionPane.showInputDialog("ATENÇÃO : Para digitar sua chave, utilize" +
                " apenas caracteres minusculos e sem acento :"); 

         //este laço vai percorrer toda a palavra passada 
        for(int i = 0; i < texto.length(); i++) { 
             //a representacao em ascii de um caractere da palavra 
             int charTexto = texto.charAt(i); 

             /*a representacao em ascii do caractere da palavra chave equivalente ao caractere acima, como essa palavra pode ser menor que a palavra principal, o indice do caractere é modularizado, para que não haja StringIndexOutOfBounds. o operador "%" retorna o resto da divisao do primeiro pelo segundo operando*/ 
             int charChave = chave.charAt(i % chave.length()); 

             /*a soma dos caracteres acima, acredito que é isso que voce quer, e agora esta modularizada para conter apenas letras do alfabeto minusculo*/ 
             int crip = 97 + ((charTexto + charChave) - 11 ) % 26; 

              //o resultado acima é concateado à String resultante 
             textoCrip += (char) crip; 
       } 

       //aqui é mostrada a string com a palavra criptografada 
       JOptionPane.showMessageDialog(null, textoCrip, "Texto Criptografado", JOptionPane.PLAIN_MESSAGE); 
    } 
}

[quote=“LeoFicz”]Ae ruy … vo salva sua vida ok ? O javaAdicted posto um código antes que criptografava e descriptografava a paradinha … eu dei uma enxugada naquele e botei só pra criptografa … da um bizu …
O que eu fiz foi colocar um -11 alih onde diz int crip bla bla bla … da funcionando certinho esse ( só 1 duvida … ele pega as letras do texto q o cara colocou e soma com as letras da chave né ? tipo problema como texto e chave como chave ele pega o p e soma com o c … suponhamos q p é 10 e c é 5 da 15 e ele mostra a letra correspondente a posiçao 15 … é isso ? ) Se quiser coloco o de cesar tbem … sem if sem nada ae pra dar uma ajuda …

Oi Marcela … tudo bom ? É a dúvida que eu tinha era isso mesmo … saber o que era o void … então ve se ta certo por favor :

o public cria a função
e o void diz que essa função não retorna nada

( acho q não é bem isso não ) é que to me baseando em javascript, asp essas coisas … que pra criar uma função vc faz function nome_da_função. É por aí ou passei longe ???

Ah … outra coisinha provavelmente rapida ( agora vai começar aparecer duvida q não acaba mais ). O sinal % alih no meio do código o javaAdicted comentou dizendo que era o resto da divisão de algo por algo … como é isso ? Se der um desenho ou algo assim vai funcionar melhor que não sou muito esperto não uhauahuhauha …

Brigado.

[code]
import javax.swing.JOptionPane;

public class Main {
public static void main( String[] args ){
//palavra que sera encriptada
String texto;

     //palavra chave, que sera menor que a palavra acima 
    String chave; 

     //resultado da encriptacao 
    String textoCrip = ""; 

    //recebe a palavra a ser encriptada 
    texto = JOptionPane.showInputDialog("ATENÇÃO : Para digitar seu texto, utilize" +
    " apenas caracteres minusculos e sem acento :"); 

    //recebe a palavra-chave 
    chave = JOptionPane.showInputDialog("ATENÇÃO : Para digitar sua chave, utilize" +
            " apenas caracteres minusculos e sem acento :"); 

     //este laço vai percorrer toda a palavra passada 
    for(int i = 0; i < texto.length(); i++) { 
         //a representacao em ascii de um caractere da palavra 
         int charTexto = texto.charAt(i); 

         /*a representacao em ascii do caractere da palavra chave equivalente ao caractere acima, como essa palavra pode ser menor que a palavra principal, o indice do caractere é modularizado, para que não haja StringIndexOutOfBounds. o operador "%" retorna o resto da divisao do primeiro pelo segundo operando*/ 
         int charChave = chave.charAt(i % chave.length()); 

         /*a soma dos caracteres acima, acredito que é isso que voce quer, e agora esta modularizada para conter apenas letras do alfabeto minusculo*/ 
         int crip = 97 + ((charTexto + charChave) - 11 ) % 26; 

          //o resultado acima é concateado à String resultante 
         textoCrip += (char) crip; 
   } 

   //aqui é mostrada a string com a palavra criptografada 
   JOptionPane.showMessageDialog(null, textoCrip, "Texto Criptografado", JOptionPane.PLAIN_MESSAGE); 
} 

}
[/code][/quote]

iae Leo… é o seguinte… to a 3 semana aki fazendo do zero… e nao entendendo qse nada… uhahuahuhua ai peguei e montei akele codigo que postei aki… ele ta clean demais… mto simples, e rodando direito (porem com alguns erros… mas o bixa do Ricardo nem vai falar nada…)

quanto a sua pergunta… sim… ele transforma os caracteres do texto e da chave para ASCII (valores), e soma… porem… como A vale 97 e Z vale 122 qndo vc somar vai dar um ASCII inexistente… ai tem q fazer uma conta para trazer ele para entre A e Z… o javaadnumseioq coloco uma conta que nao entendi… a minha conta ta certa… mas nao ta fazendo o looping… nao sei pq… mas ta dando certinho… nem tentei o dele…

qto a de cezar… fiz em 2 minutos… ta aki o codigo caso interesse!

[code]import javax.swing.JOptionPane;
public class mais{
public static void main( String[] args ){

    String palavra; 

    String resultado = ""; 


    palavra = JOptionPane.showInputDialog("Insira seu texto!"); 
            
    for(int i = 0; i < palavra.length(); i++) { 
         int charPalavra = palavra.charAt(i); 

         
         int temp = charPalavra + 3; 
         
         if ( result >= 123){
         	result = ( result - 122 + 97  );
         }
                     
                       
         resultado += (char) result; 

}
JOptionPane.showMessageDialog(null, resultado);
}
}[/code]

quanto a sua pergunta sobre o void… eh realmente isso… zoia ai…

public - Cada programa Java consiste em pelo menos uma definição de classe que é definida pelo programador, no caso, você. Essas classes são conhecidas como classes definidas pelos programador ou classes definidas pelo usuário.

A palavra chave void indica que esse método realizará uma
tarefa, mas não retornará nenhuma informação.

tirei de um tutorial… tb nao entendi mto bem… mas enfim…

Hmmmm maravilha … entendi ja … blz …

Cata esse código q eu postei alih e roda ele pra vc ver … funciona bunitinho … do dando uma olhada no seu aqui pra ver se consigo enxuga ele … mas só pra este tenta com else …

if blablabla {
blebleble
} else {
bliblibli
} else {
blobloblo
}

ele verifica o blablabla e faz blebleble aih else ( senão ) faz bliblibli else ( senão ) blobloblo e ai vai … não sei se java tem select case q fica mais facil ainda … e tbem não sei se a estrutura ta certa … faz muito tempo … muito mesmo q não mexo com if else ou select case …

[color=“green”]Ae Leo,

Tentando tirar sua dúvida:

:arrow: public é um modificador de acesso, ou seja, esse método, ou variável, ou classe, vai poder ser acessado em qq lugar do programa q tenha uma referência a esse objeto, entendeu? Se vc não quiser q isso aconteça, vc usa o modificador private.

:arrow: quanto ao %, eu não sei onde foi q o JavaAdicted usou… por isso não posso ajudar muito. Se quiser coloca o pedaço do código q ele usou isso aqui q eu tento ser mais precisa. Pois bem, o % é o famoso mod, já ouviu falar??? Ele te retorna o resto da operação. Ex: 5 mod 2 = 1 (porque 5 dividido por 2 é igual é 2 e sobra 1, certo?). Em java vc utiliza: 5% 2 = 1… entendeu???

Nossa… como professora eu sou uma negação… foi mal hein!? :oops: [/color]

Ahhhhhhhhhhhhhhhhhhhhhhh … entendi … então quando vc usa por exemplo public variavel … essa variavel vai poder ser usada em qualquer outra parte do programa sem precisar ser declarada de novo.

O % entendi tbem … facinho facinho … era o q eu tava pensando mesmo … olha o código :

int charChave = chave.charAt(i % chave.length())

Esse i é um contador, chave é uma palavra que vai ser digitada por quem for usar o programa. Ele vai dividir o i pelo tamanho da chave e usar só o resto dessa divisão …

Fazer isso em java é absurdamente mais facil que em javascript … meu deus do céu … fiquei umas 3 semanas tentando em javascript e nada … malditos formularios.