Maison > développement back-end > C++ > Comment diviser une chaîne de paramètres de ligne de commande unique en un tableau de chaînes en C# ?

Comment diviser une chaîne de paramètres de ligne de commande unique en un tableau de chaînes en C# ?

Barbara Streisand
Libérer: 2025-01-15 11:56:43
original
120 Les gens l'ont consulté

How to Split a Single Command-Line Parameter String into a String Array in C#?

Diviser la chaîne de paramètres de ligne de commande en un tableau de chaînes en C#

Aperçu du problème

En C#, les arguments de ligne de commande sont transmis sous forme de tableaux de chaînes string[]. La question est de savoir comment extraire ce tableau d'une seule chaîne contenant des paramètres de ligne de commande ?

Utiliser des fonctions standards ou des expressions régulières ?

Il n'existe pas de fonction standard directement disponible pour accomplir cette tâche. Cependant, nous pouvons utiliser des fonctions personnalisées ou des expressions régulières pour diviser correctement la chaîne.

Fonction personnalisée basée sur la vérification des caractères

Les chaînes peuvent être divisées à l'aide de fonctions personnalisées basées sur la vérification des caractères. Cette fonction examine chaque caractère et détermine si la chaîne doit être divisée. La forme de la fonction est la suivante :

<code class="language-csharp">public static IEnumerable<string> SplitCommandLine(string commandLine)
// ...</code>
Copier après la connexion

Algorithme de segmentation

L'algorithme est le suivant :

  1. Initialise une variable inQuotes à false.
  2. Divisez la chaîne à l'aide d'une fonction qui détermine le point de partage comme suit :
    • Basculez la valeur de inQuotes si le caractère est '"'.
    • Divisez la chaîne si inQuotes est false et que le caractère est ' '.
  3. Coupez et supprimez les guillemets correspondants dans les chaînes divisées.
  4. Filtrez toutes les chaînes vides.

Méthodes d'extension

La fonctionnalité peut être étendue à l'aide des méthodes d'extension suivantes :

  • public static IEnumerable<string> Split(this string str)
  • public static string TrimMatchingQuotes(this string input, char quote)

Exemples d'utilisation

Pour utiliser cette fonction, fournissez une seule chaîne contenant les arguments de la ligne de commande et recevez un string[] tableau contenant les arguments individuels :

<code class="language-csharp">string[] parameterArray = SplitCommandLine(parameterString).ToArray();</code>
Copier après la connexion

Test personnalisé

<code class="language-csharp">public static void Test(string cmdLine, params string[] args)
// ...</code>
Copier après la connexion

Des tests personnalisés peuvent être utilisés pour vérifier l'exactitude de l'algorithme de segmentation. Cette fonction compare le tableau divisé avec le tableau attendu et affirme qu'ils sont égaux.

Conclusion

En utilisant une fonction personnalisée ou une expression régulière, nous pouvons diviser efficacement la chaîne contenant les paramètres de ligne de commande en un string[] tableau, capturant les paramètres individuels, tout comme le fait C# lors de la spécification des paramètres sur la ligne de commande.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal