GARANTIR DESCONTO

Fórum Array de caracteres. #568575

09/04/2009

0

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

Responder

Posts

09/04/2009

Vagner Planello

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
Responder

Gostei + 0

09/04/2009

Flavio Pio

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.
Responder

Gostei + 0

09/04/2009

Regis Fleck

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]
Responder

Gostei + 0

09/04/2009

Junhu

Vc pode usar Expressão Regular !!!
Responder

Gostei + 0

09/04/2009

Carlos Heuberger

[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;
[]]
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar