62 votes

Comment séparer des chaînes de caractères sur le retour chariot avec C# ?

J'ai une page ASP.NET avec une zone de texte multiligne appelée txbUserName. Ensuite, je colle dans la zone de texte 3 noms et ils sont alignés verticalement :

  • Jason
  • Ammy
  • Karen

Je veux pouvoir prendre les noms et les diviser en chaînes séparées chaque fois que je détecte un retour chariot ou une nouvelle ligne. Avez-vous des idées ?

Merci.

140voto

jasonh Points 7284
string[] result = input.Split(new string[] {"\n", "\r\n"}, StringSplitOptions.RemoveEmptyEntries);

Cela couvre à la fois \n et \r\n et supprime toutes les lignes vides que vos utilisateurs peuvent saisir.

J'ai testé en utilisant le code suivant :

        string test = "PersonA\nPersonB\r\nPersonC\n";
        string[] result = test.Split(new string[] {"\n", "\r\n"}, StringSplitOptions.RemoveEmptyEntries);
        foreach (string s in result)
            Console.WriteLine(s);

Et cela fonctionne correctement, en se divisant en un tableau de trois chaînes avec des entrées "PersonA", "PersonB" et "PersonC".

7voto

o.k.w Points 15721

Remplacer tout \r\n avec \n puis divisé en utilisant \n :

string[] arr = txbUserName.Text.Replace("\r\n", "\n").Split("\n".ToCharArray());

4voto

TryCatch Points 61

Jetez un œil à la fonction String.Split (je ne suis pas sûr de la syntaxe exacte, je n'ai pas d'IDE sous les yeux).

string[] names = txbUserName.Text.Split(Environment.Newline) ;

1voto

Rubi Points 11
using System.Text;
using System.Text.RegularExpressions;

 protected void btnAction_Click(object sender, EventArgs e)
    {
        string value = txtDetails.Text;
        char[] delimiter = new char[] { ';','[' };
        string[] parts = value.Split(delimiter, StringSplitOptions.RemoveEmptyEntries);
        for (int i = 0; i < parts.Length; i++)
        {
            txtFName.Text = parts[0].ToString();
            txtLName.Text = parts[1].ToString();
            txtAge.Text = parts[2].ToString();
            txtDob.Text = parts[3].ToString();
        }
    }

1voto

Thanatos Points 13444

String.Split ?

mystring.Split(new Char[] { '\n' })

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