3 votes

Diviser et supprimer les doublons d'une chaîne de caractères

Je veux diviser la chaîne de caractères donnée et supprimer le doublon de cette chaîne. Par exemple, j'ai la chaîne suivante :

C'est mon premier post dans stack overflow, je suis très nouveau dans le développement et je n'avais pas beaucoup plus d'idée sur la façon de poster la question.

Maintenant, je veux diviser cette chaîne entière avec des espaces blancs et ce nouveau tableau n'aura pas d'entrée dupliquée.

Comment puis-je le faire ?

13voto

Adam Ralph Points 15420
"This is my first post in stack overflow, I am very new in development and I did not have much more idea about the how to post the question."
    .Split()                       // splits using all white space characters as delimiters
    .Where(x => x != string.Empty) // removes an empty string if present (caused by multiple spaces next to each other)
    .Distinct()                    // removes duplicates

Distinct() y Where() sont des méthodes d'extension LINQ, vous devez donc disposer de using System.Linq; dans votre fichier source.

Le code ci-dessus renverra une instance de IEnumerable<string> . Vous devriez être en mesure d'effectuer la plupart des opérations requises à l'aide de cette méthode. Si vous avez vraiment besoin d'un tableau, vous pouvez ajouter .ToArray() à la déclaration.

3voto

Anantha Sharma Points 4217

Ajouter le tableau dans un HashSet<String> ce qui supprimera les doublons. aquí est la documentation de Micorosft sur HashSet .

-1voto

Sachin Points 1
    static void Main()
    {
        string str = "abcdaefgheijklimnop";
        char[] charArr = str.ToCharArray();
        int lastIdx = 0;
        for (int i = 0; i < str.Length;)
        {
            for (int j = i + 1; j < str.Length - 1; j++)
            {
                if (charArr[i] == charArr[j])
                {   
                    //Console.WriteLine(charArr[i]);   
                    int idx = i != 0 ? i - 1 : i;
                    lastIdx = j;
                    string temp = str.Substring(idx, j - idx);
                    Console.WriteLine(temp);
                    break;
                }
            }
            i++;
        }

        Console.WriteLine(str.Substring(lastIdx));

}

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