Heim > Backend-Entwicklung > C++ > Wie teile ich einen einzelnen Befehlszeilenparameter-String in ein String-Array in C# auf?

Wie teile ich einen einzelnen Befehlszeilenparameter-String in ein String-Array in C# auf?

Barbara Streisand
Freigeben: 2025-01-15 11:56:43
Original
120 Leute haben es durchsucht

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

Teilen Sie die Befehlszeilenparameterzeichenfolge in ein String-Array in C# auf

Problemübersicht

In C# werden Befehlszeilenargumente als String-Arrays übergeben string[]. Die Frage ist, wie man dieses Array aus einer einzelnen Zeichenfolge mit Befehlszeilenparametern extrahiert.

Standardfunktionen oder reguläre Ausdrücke verwenden?

Es gibt keine direkt verfügbare Standardfunktion, um diese Aufgabe zu erfüllen. Wir können jedoch benutzerdefinierte Funktionen oder reguläre Ausdrücke verwenden, um die Zeichenfolge korrekt aufzuteilen.

Benutzerdefinierte Funktion basierend auf Zeichenprüfung

Strings können mithilfe benutzerdefinierter Funktionen basierend auf Zeichenprüfungen aufgeteilt werden. Diese Funktion untersucht jedes Zeichen und bestimmt, ob die Zeichenfolge geteilt werden soll. Die Funktionsform lautet wie folgt:

<code class="language-csharp">public static IEnumerable<string> SplitCommandLine(string commandLine)
// ...</code>
Nach dem Login kopieren

Segmentierungsalgorithmus

Der Algorithmus ist wie folgt:

  1. Initialisiert eine Variable inQuotes auf false.
  2. Teilen Sie die Zeichenfolge mit einer Funktion, die den Teilungspunkt wie folgt bestimmt:
    • Schalten Sie den Wert von inQuotes um, wenn das Zeichen „“‘ ist.
    • Teilen Sie die Zeichenfolge auf, wenn inQuotes false ist und das Zeichen „ “ ist.
  3. Kürzung und Entfernung übereinstimmender Anführungszeichen in geteilten Zeichenfolgen.
  4. Filtern Sie alle leeren Zeichenfolgen heraus.

Erweiterungsmethoden

Die Funktionalität kann mit den folgenden Erweiterungsmethoden erweitert werden:

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

Anwendungsbeispiele

Um diese Funktion zu verwenden, geben Sie eine einzelne Zeichenfolge mit den Befehlszeilenargumenten an und erhalten Sie ein string[]-Array mit den einzelnen Argumenten:

<code class="language-csharp">string[] parameterArray = SplitCommandLine(parameterString).ToArray();</code>
Nach dem Login kopieren

Benutzerdefinierter Test

<code class="language-csharp">public static void Test(string cmdLine, params string[] args)
// ...</code>
Nach dem Login kopieren

Benutzerdefinierte Tests können verwendet werden, um die Genauigkeit des Segmentierungsalgorithmus zu überprüfen. Diese Funktion vergleicht das geteilte Array mit dem erwarteten Array und stellt sicher, dass sie gleich sind.

Fazit

Durch die Verwendung einer benutzerdefinierten Funktion oder eines regulären Ausdrucks können wir die Zeichenfolge, die die Befehlszeilenparameter enthält, effektiv in ein string[]-Array aufteilen und die einzelnen Parameter erfassen, genau wie C# dies bei der Angabe von Parametern in der Befehlszeile tut.

Das obige ist der detaillierte Inhalt vonWie teile ich einen einzelnen Befehlszeilenparameter-String in ein String-Array in C# auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage