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 Boolean
funció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.
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!