caractère booléen comparer - en essayant de comparer trois personnages à la fois en Java

user12824107:

Je suis en train d'écrire un morceau de code à la messagerie texte Simuler sur un vieux clavier. 2 = a, b, c 3 = def etc.

Je peux lire la chaîne et retirez le caractère mais je suis en train de développer une façon élégante en Java de cartographie du caractère au nombre.

Je pouvais utiliser le Character.compare. Mais je vais devoir comparer mon caractère avec l'alphabet complet.

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

Je préfère utiliser une Booleanfonction qui compare trois caractères à la fois en utilisant un « ou »

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

Mais je suis mal - à obtenir ce travail.

Je comprends que cela est basique et probablement une erreur stupide, mais nous devons commencer quelque part ...

Toute aide serait appréciée.

AntoineB :

Vous avez dit vous - même, vous essayez de trouver un moyen de cartographier les caractères aux chiffres, utilisez donc une carte!

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 configuration initiale est un peu plus de code puisque vous devez spécifier l'alphabet, mais le stocker dans une variable statique et il sera fait une fois pour votre application entière.

Ce sera certainement obtenir les meilleures performances en termes de vitesse, et en ce qui concerne l'utilisation de la mémoire, il est seulement 26 caractères et autant entiers, donc négligeable :)

Un autre avantage est qu'il est facile de mettre à jour, si vous avez besoin pour gérer un nouveau personnage comme *, il suffit d' ajouter une ligne à la carte et il est fait!

Je suppose que tu aimes

Origine http://10.200.1.11:23101/article/api/json?id=477172&siteId=1
conseillé
Classement