Décomposer une chaine de caractere puis recomposer une autre
Bonjour,
J'ai un tableau de y-lignes et x-colonnes
- x=10 représenté par une lettre A B C D ....J
- y=18
Un opérateur sélectionne un élément dans le tableau sous la forme d'une chaîne de caractère par exemple "A1, B5, C2, C8, ...." (maximum 15 éléments) où
- A1 représente la valeur située en première position dans la colonne A (en haut à gauche)
- B5 est en 5eme position dans la colonne B
- C2 est en 2eme position dans la colonne C
- etc...
Je cherche une méthode permettant de décomposer la chaîne d'entrée et générant la chaîne de sortie.
La chaîne de sortie une suite d'entiers, où le i-ème entier est déterminé par le i-ème élément passé (par exemple B5) en chaîne d'entrée. Pour le calculer on ajouter l'index de cet élément (ici 5) à l'entier n * 18, où n est déterminé par la lettre (ici B), avec :
- n=0 pour A,
- n=1 pour B,
- n=2 pour C
- n=3 pour D
- etc...
Exemple :
- chaîne d'entrée : A1,B5,C2,C8, ....
- résultat attendu : 1,23,38,44, .....
La chaîne d'entrée est saisie par un opérateur. La chaîne de sortie envoyée à un Arduino par Bluetooth. Cette méthode doit être écrite en Java sur "Android Studio"
Quelqu'un a t il une solution ? Je n'ai aucune idée.
Merci pour votre aide
- Décomposer une chaine de caractere puis recomposer une autre
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Chaine tnt gratuite sur mobile - Guide
- Caractere vide - Guide
2 réponses
Bonjour,
- Commence par transformer la chaîne d'entrée en tableau (voir ici). Je nomme ce tableau tab_in.
- Crée un tableau de même longueur permettant de stocker des entiers. Je le nomme tab_out.
- Pour élément du tableau d'entrée s = tab_in[i]
- Supprime de s les éventuels espaces qui traînent (voir ici) et écrit la en minuscule (voir ici)
- Vérifie que s[0] est une lettre minuscule. Si c'est le cas : n = s[0] - 'a'
- Extraie les caractères restants (voir ici) et extrait l'entier correspondant (voir ici). Appelons cette valeur m.
- La valeur que tu veux calculer pour cet élément est val = n * 18 + m. On mémorise val dans tab_out[i]
- Convertis tab_out sous forme de chaîne de caractères (voir ici) et retourne la.
Bonne chance