89 votes

fractionnement d'une chaîne en fonction de plusieurs délimiteurs de caractères

J'ai une chaîne "4,6,8\n9,4"

Je veux diviser cela en fonction de et \n

Le tableau de sortie doit être

 4
6
8
9
4

Éditer :

Maintenant, je lis la chaîne de la console, lorsque j'entre une chaîne comme ci-dessus dans la console, dans le code derrière, j'obtiens comme "4,6,8\\n9,4" . Maintenant que je veux diviser en utilisant "," and "\\n" . Comment puis-je changer l'expression?

7voto

Austin Salonen Points 28057
var s = "4,6,8\n9,4";
var split = s.Split(new char[]{',', '\n'});

Mais ce doit être une dupe...

EDIT : Répondre au commentaire.

Ce code :

 static void Main(string[] args)
{
    var s = "4,6,8\n9,4";

    foreach (var a in s.Split(new char[] { ',', '\n' }))
        System.Diagnostics.Debug.WriteLine(a);
}

Affiche ceci :

 4
6
8
9
4

EDIT : La lecture de l'entrée de la console est différente. \n est différent lorsqu'il est entré manuellement.

 static void Main(string[] args)
{
    var s = "4,6,8\\n9,4";

    foreach (var a in s.Split(new string[] { ",", "\\n" }, StringSplitOptions.RemoveEmptyEntries))
        System.Diagnostics.Debug.WriteLine(a);
}

4voto

manojlds Points 96599
string tosplit = "4,6,8\n9,4";
var split = tosplit.Split(new Char [] {',', '\n' });

Juste au cas où vous ne l'imprimez pas / ne le voyez pas correctement :

 split.ToList().ForEach(Console.WriteLine);

2voto

andrew Points 606

Pouvez-vous faire un string.Replace('\n',',') suivi du string.split(',') ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X