Seja bem vindo ao Fórum do JavaFree.org
Aqui você irá encontrar respostas para TUDO o que você precisa sobre java.
Deseja participar? Crie sua conta ou efetue seu login
estou tentando fazer um criptografador o código já esta todo pronto, meu único problema é que ele dá um erro na linha 30, segue o código e o erro, respectivamente.
Erro:
_________________
Atenciosamente: liuzp "A mente que se abre para uma nova ideia, jamais voltará ao seu tamanho original" Albert Einstein
estou tentando fazer um criptografador o código já esta todo pronto, meu único problema é que ele dá um erro na linha 30, segue o código e o erro, respectivamente.
e uma dica: em Java o char pode ser tratado como um número e para as letras do ASCII ele representa o próprio código ASCII. Na realidade o char é um número, somente algumas operações como a transformação em String e o println é que o consideram uma letra. Exemplos:
no seu caso especificamente não é necessário fazer o segundo laço para procurar a letra, o índice para "Letras" pode ser calculado:
_________________
Nome real: Carlos F. Heuberger
Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!
Eu acho que você não entendeu. O que quero fazer e com que o usuário informe uma palavra qualquer então o programa separa esta palavra em um array de char onde o programa lê a letra que esta neste array e a troca pela próxima letra, na segunda leitura ele faz o mesmo porém agora ele troca a letra não pela próxima mas pela segunda letra na fila. Ex: informei a palavra "oi"; o programa separa em um array char 'o' e 'i', no caso; o programa devera ler a letra 'o' e troca-la pela letra 'p'; depois ele lê a letra 'i' só que agora ele não a troca pelo 'j' e sim pelo 'k'; apos isso ele junta tudo e informa a palavra final ao usuário, ou seja, "pk";
Entendeu?, só que dai me apareceu este errinho ai que ta me incomodando.
_________________
Atenciosamente: liuzp "A mente que se abre para uma nova ideia, jamais voltará ao seu tamanho original" Albert Einstein
Eu acho que você não entendeu. O que quero fazer e com que o usuário informe uma palavra qualquer então o programa separa esta palavra em um array de char onde o programa lê a letra que esta neste array e a troca pela próxima letra, na segunda leitura ele faz o mesmo porém agora ele troca a letra não pela próxima mas pela segunda letra na fila. Ex: informei a palavra "oi"; o programa separa em um array char 'o' e 'i', no caso; o programa devera ler a letra 'o' e troca-la pela letra 'p'; depois ele lê a letra 'i' só que agora ele não a troca pelo 'j' e sim pelo 'k'; apos isso ele junta tudo e informa a palavra final ao usuário, ou seja, "pk";
Entendeu?, só que dai me apareceu este errinho ai que ta me incomodando.
EU entendi exatamente isso sim! Parece que você não entendeu o que eu escrevi... [:-|
Usando o seu exemplo (é claro que se faz com um laço)
mas essa parte de usar char como número foi apenas uma dica,
leu o link que passei com a explicação sobre o errinho? ou postei à toa? [:-(
_________________
Nome real: Carlos F. Heuberger
Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!
ArrayOutOfBones é um dos erros mais classicos do java, vc esta estourando o limite do seu array/list/qualquer lista.. vc esta chamando algo q não existe..
_________________
"Se vc não souber orientar objeto,herança,polimorfismo e fazer uma tela a unha,sem arrastar botão vc não é JAVA!" Nunca Será aspira, NUNCA!!!
Eu acho que você não entendeu. O que quero fazer e com que o usuário informe uma palavra qualquer então o programa separa esta palavra em um array de char onde o programa lê a letra que esta neste array e a troca pela próxima letra, na segunda leitura ele faz o mesmo porém agora ele troca a letra não pela próxima mas pela segunda letra na fila. Ex: informei a palavra "oi"; o programa separa em um array char 'o' e 'i', no caso; o programa devera ler a letra 'o' e troca-la pela letra 'p'; depois ele lê a letra 'i' só que agora ele não a troca pelo 'j' e sim pelo 'k'; apos isso ele junta tudo e informa a palavra final ao usuário, ou seja, "pk";
Entendeu?, só que dai me apareceu este errinho ai que ta me incomodando.
EU entendi exatamente isso sim! Parece que você não entendeu o que eu escrevi... [:-|
Usando o seu exemplo (é claro que se faz com um laço)
mas essa parte de usar char como número foi apenas uma dica,
leu o link que passei com a explicação sobre o errinho? ou postei à toa? [:-(
sim, sim eu li o link e entendi exatamente o que o nosso colega postou após você, porém não vejo onde estourei o array e outra agora dei uma modifica no código uma vez que estava faltando algumas informações segue abaixo.
agora o erro é na linha 39, ou seja, , e o erro continua o mesmo, se para resolve-lo preciso usar números, você poderia simplificar um pouco melhor sua explicação simu?
_________________
Atenciosamente: liuzp "A mente que se abre para uma nova ideia, jamais voltará ao seu tamanho original" Albert Einstein
sim, sim eu li o link e entendi exatamente o que o nosso colega postou após você, porém não vejo onde estourei o array e outra agora dei uma modifica no código uma vez que estava faltando algumas informações segue abaixo.
agora o erro é na linha 39, ou seja, , e o erro continua o mesmo, se para resolve-lo preciso usar números, você poderia simplificar um pouco melhor sua explicação simu?
não ve onde estourou? A Exception indica em qual linha e qual o valor errado! O erro anterior deve ter sido aqui:
pois o valor de 'n2' foi 4 (pela mensagem do erro) e 'b' tinha somente 4 posições, causado por:
o laço vai ser percorrido a última vez com "n = b.length". O correto seria:
igual você fez com os outros laços... o link que eu passei, e você leu, tem exatamente esse erro como exemplo!!!
sekkuar:
[...] um ultimo erro, também comum demais é
O erro está em
i<=matriz.length
o correto é
i<matriz.length [...]
Bom, se agora o erro está na linha:
existem duas possibilidades: ou 'n' está fora do limite, ou 'n2 + cont'... a mensagem da Exception provê o valor errado. Como a linha anterior acessa 'b[n]' sem gerar erro, obviamente 'n2 + cont' é o índice que causa o erro. Pergunta: qual a letra que vem depois de 'Z', qual a segunda letra depois do 'Z',... ou a segunda depois de 'Y'? Claro, você botou 52 letras no Array, mas se o texto de entrada tiver mais que 52 letras?
Solução: testar o novo índice e se for maior que o Array continuar do começo:
ou usando o operador módulo:
(nessa caso não é necessário repetir as letras em 'Letras'...)
_________________
Nome real: Carlos F. Heuberger
Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!
obrigado vou tentar fazer agora. Qualquer duvida a mais posto aqui.
_________________
Atenciosamente: liuzp "A mente que se abre para uma nova ideia, jamais voltará ao seu tamanho original" Albert Einstein
liuzp Offline
Posts: 32
Olá a todos os leitores,
estou tentando fazer um criptografador o código já esta todo pronto, meu único problema é que ele dá um erro na linha 30, segue o código e o erro, respectivamente.
Erro:
_________________
Atenciosamente:
liuzp
"A mente que se abre para uma nova ideia, jamais voltará ao seu tamanho original" Albert Einstein
simu Offline
Posts: 9410
Já verificou a FAQ?
java.lang.ArrayIndexOutOfBoundsException
e uma dica: em Java o char pode ser tratado como um número e para as letras do ASCII ele representa o próprio código ASCII. Na realidade o char é um número, somente algumas operações como a transformação em String e o println é que o consideram uma letra. Exemplos:
no seu caso especificamente não é necessário fazer o segundo laço para procurar a letra, o índice para "Letras" pode ser calculado:
_________________
Nome real: Carlos F. Heuberger
Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!
"The mod javafree deserves, but not the one it needs right now."
--------------------
Não leio nem respondo MPs!
This posting is provided AS IS with no warranties and confers no rights.
liuzp Offline
Posts: 32
Eu acho que você não entendeu.
O que quero fazer e com que o usuário informe uma palavra qualquer então o programa separa esta palavra em um array de char onde o programa lê a letra que esta neste array e a troca pela próxima letra, na segunda leitura ele faz o mesmo porém agora ele troca a letra não pela próxima mas pela segunda letra na fila.
Ex:
informei a palavra "oi";
o programa separa em um array char 'o' e 'i', no caso;
o programa devera ler a letra 'o' e troca-la pela letra 'p';
depois ele lê a letra 'i' só que agora ele não a troca pelo 'j' e sim pelo 'k';
apos isso ele junta tudo e informa a palavra final ao usuário, ou seja, "pk";
Entendeu?, só que dai me apareceu este errinho ai que ta me incomodando.
_________________
Atenciosamente:
liuzp
"A mente que se abre para uma nova ideia, jamais voltará ao seu tamanho original" Albert Einstein
simu Offline
Posts: 9410
EU entendi exatamente isso sim!
Parece que você não entendeu o que eu escrevi... [:-|
Usando o seu exemplo (é claro que se faz com um laço)
mas essa parte de usar char como número foi apenas uma dica,
leu o link que passei com a explicação sobre o errinho? ou postei à toa? [:-(
_________________
Nome real: Carlos F. Heuberger
Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!
"The mod javafree deserves, but not the one it needs right now."
--------------------
Não leio nem respondo MPs!
This posting is provided AS IS with no warranties and confers no rights.
elmatador140 Offline
Posts: 279
ArrayOutOfBones é um dos erros mais classicos do java, vc esta estourando o limite do seu array/list/qualquer lista.. vc esta chamando algo q não existe..
_________________
"Se vc não souber orientar objeto,herança,polimorfismo e fazer uma tela a unha,sem arrastar botão vc não é JAVA!"
Nunca Será aspira, NUNCA!!!
Estágiario!!
Blumenau-SC
liuzp Offline
Posts: 32
sim, sim eu li o link e entendi exatamente o que o nosso colega postou após você, porém não vejo onde estourei o array e outra agora dei uma modifica no código uma vez que estava faltando algumas informações segue abaixo.
agora o erro é na linha 39, ou seja, , e o erro continua o mesmo, se para resolve-lo preciso usar números, você poderia simplificar um pouco melhor sua explicação simu?
_________________
Atenciosamente:
liuzp
"A mente que se abre para uma nova ideia, jamais voltará ao seu tamanho original" Albert Einstein
simu Offline
Posts: 9410
não ve onde estourou? A Exception indica em qual linha e qual o valor errado!
O erro anterior deve ter sido aqui:
pois o valor de 'n2' foi 4 (pela mensagem do erro) e 'b' tinha somente 4 posições, causado por:
o laço vai ser percorrido a última vez com "n = b.length". O correto seria:
igual você fez com os outros laços...
o link que eu passei, e você leu, tem exatamente esse erro como exemplo!!!
Bom, se agora o erro está na linha:
existem duas possibilidades: ou 'n' está fora do limite, ou 'n2 + cont'...
a mensagem da Exception provê o valor errado. Como a linha anterior acessa 'b[n]' sem gerar erro, obviamente 'n2 + cont' é o índice que causa o erro.
Pergunta: qual a letra que vem depois de 'Z', qual a segunda letra depois do 'Z',... ou a segunda depois de 'Y'?
Claro, você botou 52 letras no Array, mas se o texto de entrada tiver mais que 52 letras?
Solução: testar o novo índice e se for maior que o Array continuar do começo:
ou usando o operador módulo:
(nessa caso não é necessário repetir as letras em 'Letras'...)
_________________
Nome real: Carlos F. Heuberger
Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!
"The mod javafree deserves, but not the one it needs right now."
--------------------
Não leio nem respondo MPs!
This posting is provided AS IS with no warranties and confers no rights.
liuzp Offline
Posts: 32
obrigado vou tentar fazer agora. Qualquer duvida a mais posto aqui.
_________________
Atenciosamente:
liuzp
"A mente que se abre para uma nova ideia, jamais voltará ao seu tamanho original" Albert Einstein
Relacionados