Hello,
voici ma string "demo3483030";
je cherche à extraire de cette chaine de caractères tous les numéros.
Comment fait on?
D'avance, Merci.
Version imprimable
Hello,
voici ma string "demo3483030";
je cherche à extraire de cette chaine de caractères tous les numéros.
Comment fait on?
D'avance, Merci.
Salut,
tu peux faire une boucle en testant les caractères :
Code:
1
2
3
4
5
6
7
8 foreach(var c in str) { if(char.IsNumber(c)) { //... } }
Sinon, tu peux utiliser une expression régulière :
après, à toi de voir ce que tu veux en faireCode:
1
2
3
4
5
6
7
8
9 String input = "kjlkjdf48d48fcxds983s2c1"; MatchCollection matches = Regex.Matches(input, "[0-9]"); foreach (Match match in matches) { // par exemple : this.Label1.Text += match.Value; }
Si t'es sûr que les chiffres sont consécutifs et sont présents une seule fois dans la chaîne, rajoute + après [0-9].
Salut,
Si la chaine demo00000 est créé dans le code tu peux eventuellement mettre un caractere entre demo et le chiffre de facon à utiliser un split après.
dans le cas contraire, une boucle s'impose tu test si c'est un nombre ou pas et à chaque fois tu concaténe dans une chaine temporaire que tu peux convertir ensuite. Convert.ToInt32
Code:
1
2
3
4
5
6
7
8
9
10 char[] tab = chaineStr.ToCharArray(); String prefixLettre = "", suffixNombre = ""; for(int i = tab.Length-1;i>=0;i--) { if (char.IsNumber(tab[i])) suffixNombre = tab[i] + suffixNombre; else prefixLettre = tab[i] + prefixLettre; } int numero = int.Parse(suffixNombre);
Salut,
Tu peux faire quelque chose de simple comme ceci :
tu auras :Code:
1
2
3 string a="demo3483030"; string b = a.Split('3')[0]; string c = a.Split('3')[1];
c'est une méthode facile mais le problème c'est que le caractère où tu fais le Split disparais, de même si tu as plusieurs chaînes contenant "demo" et que le premier chiffre est autre que 3 tu devras faire du cas par cas avec cette méthode, au pire tu peux utiliser un switch le mieux serait d'utiliser des crochets [0-9] pour dire que dès le premier chiffre tu coupes mais je ne sais pas si ça marche avec Split.Code:
1
2 string b = "demo"; string c = "483030";
Euh, la discussion date de 2010...