caráter boolean comparar - tentar comparar três personagens ao mesmo tempo em Java

user12824107:

Eu estou tentando escrever um pedaço de código para mensagens de texto simular em um teclado de idade. 2 = a, b, c 3 = def etc.

Eu posso ler a corda e puxe o personagem, mas eu estou tentando desenvolver uma maneira elegante em Java de mapear o personagem para o número.

Eu poderia usar o Character.compare. Mas eu vou ter de comparar o meu personagem com o alfabeto completo.

compareOneTwo = Character.compare(ch[r], 'a'); etc

Eu prefiro usar uma Booleanfunção que compara três personagens ao mesmo tempo usando um "ou"

if(ch[r] = 'a'||'b'||'c') { 

Mas eu estou lutando - com a obtenção deste ao trabalho.

Compreendo que este é básica e provavelmente um erro bobo, mas todos nós temos que começar em algum lugar ...

Qualquer ajuda será apreciada.

AntoineB:

Você mesmo disse, você está tentando encontrar uma maneira de mapear os personagens para os números, então use um mapa!

Map<Character, Integer> characters = new HashMap<>();
characters.put('a', 2);
characters.put('b', 2);
characters.put('c', 2);
characters.put('d', 3);
...
characters.put('z', 0);

Integer number = characters.get('a');
System.out.println(number); // Will print '2'

A configuração inicial é um pouco mais de código, pois você tem que especificar o alfabeto inteiro, mas armazená-lo em uma variável estática e vai ser feito uma vez para toda a sua aplicação.

Isto vai certamente produzir os melhores desempenhos em termos de velocidade, e sobre o uso de memória, é apenas 26 caracteres e, como muitos inteiros, :) de modo insignificante

Outra vantagem é que é fácil de atualizar, se você precisa lidar com um novo personagem como *, basta adicionar uma linha para o mapa e está feito!

Acho que você gosta

Origin http://10.200.1.11:23101/article/api/json?id=477170&siteId=1
Recomendado
Clasificación