Jump to content

Como fazer uma tabela conversora de caracteres?


Recommended Posts

Posted

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.

Posted

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
Posted

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 ?

Posted

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"

Posted

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)");
			 }
		 }
	 }
 }
}
Posted

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"

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.