Ir para o conteúdo
Skezzz

Como fazer uma tabela conversora de caracteres?

Mensagens Recomendadas

Skezzz

Apareceu uma dificuldade no meio do trabalho e gostava que alguem me pudesse ajudar a fazer uma tabela conversora de caracters, através do teclado ou de um ficheiro em formato csv. Por exemplo, Caracter: A Codigo: 3 e ao escrever a mensagem para codificar, como por exemplo "Nao sei nada" converter as letras em numeros e colocar numa matriz de 2,3 ou 4 linhas dependendo da ordem da matriz.

Obrigado.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

acho que o problema é duma complexidade que se eu fosse a ajudar alguma coisa teria o problema feito ... mas vou tentar se o fazer por ti

primeirop e antes do demais, não é matrix ... não faço ideia porque é que o pessoal teima em hamar matrix a um array, que raio de livros/sites andam voçes a ler !!!

matrix é um objecto matemático muiti-dimensional, o que tu queres só tem uma dimensão, como um vector e que em informática chamasse array.

segundo tens que pensar que tens 10 dígitos e bem mais caracteres (e se fores contar com os acentuados, ui ...)

depois de pensar numa função injectiva que transforma o teu caracter no número, caso contrário é impossivel fazer a operação inversa.

depois disso, cria duas funções :

- codificar (aplicar a tua função)

- descodificar (aplicar o inverso da função)


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
SuissoS

nao percebi nada . nao sei mesmo nada de programaçao . tive 10 a programação com muita sorte mesmo . nao da para porem em linha de codigo de netbeans um exemplo de codificação da mensagem ?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

nao da para porem em linha de codigo

eu não o farei porque se é para aprenderes, não é para eu fazer, mas eu dou-te uma linha de código então :

public static void main(String[] args)

Editado por HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
apocsantos

Boa tarde,

Qual seria a vantagem para ti, de te darem o trabalho feito ?

Partindo do principio que terás uma boa resposta para a pergunta anterior (fico à espera da resposta), deixo-te uma pequena ajuda.

public tabela = new HashMap <String,codigo> ();

Cordiais cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

assinatura.jpg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Skezzz

Bem o que eu pretendia era algo como isto mas não sei muito bem como o fazer

private static void tabelaConversora(char[] carac, int[] codigo, int nC) throws FileNotFoundException, IOException {
 System.out.println("Pretende digitar a tabela conversora de carateres ou por ficheiro? (T/F)");
 String res = in.next();
 String resp;
 if ("F".equals(res)) {
	 System.out.println("Digite o nome do ficheiro");
	 String nome = in.next();
	 Scanner input = new Scanner(new File(nome + ".csv"));
 } else {
	 if ("T".equals(res)) {
		 do {
			 System.out.println("Deseja introduzir o caracter e codigo ou por ordem como coloca os caracteres? (Codigo/Ordem)");
			 resp = in.next();
		 } while (!"Codigo".equals(resp) && !"codigo".equals(resp) && !"Ordem".equals(resp) && !"ordem".equals(resp));
		 if ("Codigo".equals(resp) || "codigo".equals(resp)) {
			 for (int i = 0; i < nC; i++) {
				 System.out.print("Caracter: ");
				 System.out.print("Codigo de " + carac[i] + ": ");
				 codigo[i] = in.nextInt();
			 }
		 }
		 if ("Ordem".equals(resp) || "ordem".equals(resp)) {
			 for (int x = 0; x < nC; x++) {
				 System.out.println("Escreva os caracteres pela sequencia que deseja (Ex: 1º digitado = 1)");
			 }
		 }
	 }
 }
}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
apocsantos

Bom dia,

Podias ler o ficheiro .csv para um HashMap, onde armazenarias todos os caracteres da tabela ascii e os "correspondentes codificados".

Depois de teres carregada a tabela para o HashMap (Key,Value) podes usar o metodo containsKey para procurares cada caracter no HashMap e obteres o "correspondente codificado".

Para fazer o inverso podes usar o metodo containsValue do HashMap em que em vez de pesquisares pela "key" pesquisas pelo "valor" e podes obter o correspondente "não-codificado".

Para mim parece-me ser a solulão mais lógica, pois com um HashMap ficas logo com um objecto que te armazena de forma indexada "chave" e "valor" em que a cada "chave" corresponde apenas um "valor".

Penso que já ontem te tinha deixado um exemplo de como crirar o HashMap, e podes sempre ver na documentação oficial da linguagem Java.

Qualquer duvida, pergunta! De resto penso que podes re-utilizar o teu código todo... até podes ler do ficheiro para o HashMap, ou ler do teclado e colocar os dados no HashMap.

Cordiais cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

assinatura.jpg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.