Jump to content
Skezzz

Como fazer uma tabela conversora de caracteres?

Recommended Posts

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.

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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 ?

Share this post


Link to post
Share on other 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)

Edited by HappyHippyHippo

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

Share this post


Link to post
Share on other 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"

Share this post


Link to post
Share on other 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)");
			 }
		 }
	 }
 }
}

Share this post


Link to post
Share on other 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"

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • 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.