Meilleur auteur de réponses
manipuler les chaines de caractere

Question
-
bonjour!
j'ai une chaine de caractère de ce type "{ 2 18 3 11}" je voudrai juste récupérer les chiffre et les nombre dont 2, 18, 3 et 11 pour faire un calcule spécial pour chaque élément.
Merci d'avance
- Modifié Saintjuste vendredi 31 mai 2013 09:55
Réponses
-
Bonjour,
Voici un exemple:
namespace SplitNumbers { using System.Windows.Forms; using System.Linq; using System.Collections.Generic; public partial class FormMain : Form { public FormMain() { this.InitializeComponent(); } private void FormMain_Load(object sender, System.EventArgs e) { string maChaine = "{ 2 18 3 11 12 13 11 22 33}"; IEnumerable<int> maListeDeNombre = ExtraireNombres(maChaine); maListeDeNombre.ToList(); foreach (var item in maListeDeNombre) { listBox1.Items.Add(item); } } private int[] ExtraireNombres(string chaine) { // on retire les parenthèses chaine = chaine.Substring(1, chaine.Length - 2); // On retire les espaces au début et/ou à la fin chaine = chaine.Trim(); string[] liste = chaine.Split(' '); //On vérifie qu'il n'y a que des nombres int[] liste2 = new int[liste.Length]; int compteur = 0; int nombre; for (int i = 0; i <= liste.Length - 1; i++) { if (int.TryParse(liste[i], out nombre)) { liste2[compteur] = nombre; compteur++; } } return liste2; } } }
- Proposé comme réponse Gabriel MongeonModerator lundi 3 juin 2013 13:30
- Marqué comme réponse Aurel Bera jeudi 6 juin 2013 10:22
-
- Marqué comme réponse Aurel Bera jeudi 6 juin 2013 10:22
Toutes les réponses
-
- Marqué comme réponse Aurel Bera jeudi 6 juin 2013 10:22
-
Bonjour,
Voici un exemple:
namespace SplitNumbers { using System.Windows.Forms; using System.Linq; using System.Collections.Generic; public partial class FormMain : Form { public FormMain() { this.InitializeComponent(); } private void FormMain_Load(object sender, System.EventArgs e) { string maChaine = "{ 2 18 3 11 12 13 11 22 33}"; IEnumerable<int> maListeDeNombre = ExtraireNombres(maChaine); maListeDeNombre.ToList(); foreach (var item in maListeDeNombre) { listBox1.Items.Add(item); } } private int[] ExtraireNombres(string chaine) { // on retire les parenthèses chaine = chaine.Substring(1, chaine.Length - 2); // On retire les espaces au début et/ou à la fin chaine = chaine.Trim(); string[] liste = chaine.Split(' '); //On vérifie qu'il n'y a que des nombres int[] liste2 = new int[liste.Length]; int compteur = 0; int nombre; for (int i = 0; i <= liste.Length - 1; i++) { if (int.TryParse(liste[i], out nombre)) { liste2[compteur] = nombre; compteur++; } } return liste2; } } }
- Proposé comme réponse Gabriel MongeonModerator lundi 3 juin 2013 13:30
- Marqué comme réponse Aurel Bera jeudi 6 juin 2013 10:22
-
Bonjour,
Est-ce que vous avez testé les solutions proposées ? Merci de partager avec nous les résultats, afin que d'autres personnes avec le même problème puissent profiter de cette solution.
Cordialement,
Aurel
-
Bonjour Saintjuste,
Utiliser la méthode Split ?
Cordialement, Jacques
-
-
Bonjour,
Pouvons-nous considérer que vous avez résolu votre problème avec les scénarios proposés ? Dans l'affirmative, pourriez-vous partager avec nous la solution, afin que d'autres personnes avec le même problème puissent profiter de cette solution ?
Désormais, nous marquons les solutions proposées. N'hésitez pas à revenir et supprimer la réponse marquée si la solution n’est pas correcte. Merci !
Cordialement,
-