Jump to content

Como fazer uma tabela conversora de caracteres?


Skezzz

Recommended Posts

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.

Link to comment
Share on other sites

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

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

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"

Link to comment
Share on other sites

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

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"

Link to comment
Share on other sites

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.