Array de caracteres.

Java

09/04/2009

Bom dia tenho que declarar um array que inicialize com todos os caracteres do teclado, para que possa comparar com os caracteres que o usuario digite para que execute um if com cada caracter se não vou ter que digitar todos os caracteres posiveis. Já fiz desta forma mais esta um horror.
public class Crip {

	

	public static char recebe, devolve;
	public static char senha;
	
		public static char [] caracteres = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'j', 'k', 'l','m', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'y',x', 'z' };// aqui esta o meu problema.
	

	public static char getRecebe(char recebe) {
		for (int op = 0; op < caracteres.length; op++) {
			char compara;
			compara = caracteres[op];
			if (recebe == compara) {
				int resposta;
				resposta = op + 3;
				recebe = caracteres[resposta];
				break;
			}// fim if
		}// fim for
		return recebe;
	}// fim getRecebe

	public static char getDevolve(char devolve) {
		for (int op = 0; op < caracteres.length; op++) {
			char compara;
			compara = caracteres[op];
			if (devolve == compara) {
				int resposta;
				resposta = op - 3;
				devolve = caracteres[resposta];
				break;
			}// fim if
		}// fim for
		return devolve;
	}// getDevolve

	[color=red][/color][color=#444444][/color]
[b]editado pelo moderador[/b]
Flavio Pio

Flavio Pio

Curtidas 0

Respostas

Vagner Planello

Vagner Planello

09/04/2009

A ideia é retornar o caracter + 3 ? Se for, voce pode levar em consideracao que um char é um tipo numerico, somar 3 unidades a ele e retornar. Só vai ter que fazer alguma logica pra tratar os ultimos chars ('x', 'y', 'z') pra que ele retorne pro 'a', 'b', 'c' se for o caso
GOSTEI 0
Flavio Pio

Flavio Pio

09/04/2009

Enquanto isso blz mas não queria digitar todos os caracteres na mão queria uma forma de iniciar o array de forma que entenda letras, numeros e pontuação.
GOSTEI 0
Regis Fleck

Regis Fleck

09/04/2009

public static char [] caracteres = new char[] 
{ 
  'a', 'b', 'c', 
  'd', 'e', 'f',
   'j', 'k', 'l',
   'm', 'n', 'o',
   'p', 'q', 'r',
   's', 't', 'u', 
    'v', 'w', 'y',
    x', 'z' }; // aqui esta o meu problema.
[color=darkred]-> faltou uma aspa simples no x[/color]
GOSTEI 0
Junhu

Junhu

09/04/2009

Vc pode usar Expressão Regular !!!
GOSTEI 0
Carlos Heuberger

Carlos Heuberger

09/04/2009

[quote="vagnerpl"]A ideia é retornar o caracter + 3 ? Se for, voce pode levar em consideracao que um char é um tipo numerico, somar 3 unidades a ele e retornar. Só vai ter que fazer alguma logica pra tratar os ultimos chars ('x', 'y', 'z') pra que ele retorne pro 'a', 'b', 'c' se for o caso
exemplo:
char ch;
...
char resposta = ch + 3;  // ou ch - 3
if (resposta > 'z')
    ch = ch - 'z' - 1 + 'a';// ajuste
mas, se mesmo assim quiser fazer com um array:
char[] arr = new char['a'-'z'+1];  // ou 26
for (char ch = 'a'; ch <= 'z'; ch++)
    arr[ch-'a'] = ch;
[]]
GOSTEI 0
POSTAR