Décomposer une chaine de caractere puis recomposer une autre

tawen65 - Modifié le 2 juil. 2024 à 17:18
mamiemando Messages postés 33535 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 12 février 2025 - 2 juil. 2024 à 17:17

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

A voir également:

2 réponses

Utilisateur anonyme
22 mars 2024 à 12:57

Bonjour

y'a les virgules et les espaces dans la chaine d'entrée?


0
mamiemando Messages postés 33535 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 12 février 2025 7 828
2 juil. 2024 à 17:17

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

0