carácter booleano comparar - se trata de comparar tres personajes a la vez en Java

user12824107:

Estoy tratando de escribir una pieza de código para simular la mensajería de texto en un viejo teclado. 2 = a, b, c 3 = def etc.

Puedo leer la cadena y tire de la personalidad, pero estoy tratando de desarrollar una manera elegante en Java de mapear el carácter al número.

Podría usar el Character.compare. Pero voy a tener que comparar mi personaje con el alfabeto completo.

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

Yo prefiero utilizar una Booleanfunción que compara tres personajes a la vez utilizando un "o"

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

Pero estoy luchando - con conseguir que esto funcione.

Aprecio que esto es básico y probablemente un error tonto, pero todos tenemos que empezar en alguna ...

Cualquier ayuda será apreciada.

AntoineB:

Usted mismo lo ha dicho, que está tratando de encontrar una manera de asignar los personajes a los números, a fin de utilizar un 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'

La configuración inicial es un poco más código, ya que tiene que especificar todo el alfabeto, pero lo almacena en una variable estática y va a hacerse una vez para toda la aplicación.

Esto sin duda dar las mejores prestaciones en términos de velocidad, y en relación con el uso de memoria, que es sólo 26 caracteres y, como muchos enteros, de modo insignificante :)

Otra ventaja es que es fácil de actualizar, si usted necesita para manejar un nuevo personaje como *, basta con añadir una fila al mapa y se hace!

Supongo que te gusta

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