Ich brauche Hilfe mit der Split
Funktion in C#. Der Benutzer muss eine 3-Wort-Phrase oder mehr eingeben. Ich weiß bereits, was das erste Wort des Benutzers sein wird. Wenn der Benutzer beispielsweise "Microsoft Visual Studio 2015" eingibt, weiß ich bereits, dass der Benutzer "Microsoft" eingeben wird. Wie kann ich Split
erhalten, um das erste Wort abzuschneiden und nur die folgende Phrase als Zeichenkette zu geben?Eine Zeichenfolge in 2 Strings teilen
Antwort
Es gibt eine overload der String.Split()
Methode, die eine ganze Zahl erfolgt, die eine Zeichenkette in eine maximale Anzahl von Teilzeichenfolgen aufspaltet auf den Zeichen in einem Feld basieren. Es ist Parameter char[]
und int
so sein sollte:
string input = "Microsoft Visual Studio 2015";
string output = input.Split(new[] {' '}, 2)[1];
Danke für die Antwort, es funktioniert super! Aber gibt es einen Weg, nur das erste Wort zu haben, wie ich es auch tun muss. Danke nochmal – Cabe
@Cabe Du bist Willkommen. Verwenden Sie "0" anstelle von "1". Es gibt nur das erste Wort zurück. –
@Cabe Ich habe auch einen Link zu MSDN hinzugefügt, um mehr über diese Überladung zu erfahren. –
können Sie verwenden Replace()
Methode wie
string str = "Microsoft Visual Studio 2015";
str = str.Replace("Microsoft","");
(OR) Sie können auch Substring()
Methode wie
str = str.Substring(("Microsoft".Length + 1), str.Length - ("Microsoft".Length + 1));
Es sollte beachtet werden: Das wird alle Instanzen von Microsoft in der Zielzeichenfolge entfernen, nicht nur die erste, und alle Teilstrings, die angezeigt werden, so "Microsoftsy" wird "y" –
verwenden Wenn Sie die Zeichenfolge wissen mit einem Wert starten, können Sie einfach entfernen die Anzahl der Zeichen aus der Zeichenfolge:
string value = "Microsoft Visual Studio 2015";
string expected = "Microsoft ";
if (value.StartsWith(expected))
{
value = value.Substring(expected.Length);
}
char[] separators = { ' ' };
string secondword = myString.Split(separators, 2)[1];
Gibt Ihnen die richtige Ausgabe. Die Split-Anweisung mit einem int-Argument gibt an, dass Sie höchstens 2 Teilzeichenfolgen zurückgeben möchten, und der Array-Index [1] leitet die zweite davon (was auch immer hinter dem ersten Leerzeichen steht) als Ausgabe aus.
Wenn Sie das erste Wort benötigen, können Sie ähnlich tun:
char[] separators = { ' ' };
string firstword= myString.Split(separators, 2)[0];
Dies ist wahrscheinlich die effizienteste und richtige Antwort. Ich wusste nicht einmal, dass diese Option existiert, also habe ich etwas Neues gelernt. Nett. –
Microsoft Visual Studio gibt einen Fehler auf dem zweiten Argument der '.Split-Funktion (die 2) es besagt, dass" Argument 2: nicht von 'Int' in 'Char' konvertiert werden kann "jede Hilfe? – Cabe
Wenn Sie nicht das erste Wort nicht kennen, aber Sie wollen immer, es nehmen Sie nur String.Substring()
verwenden können:
string input = "Microsoft Visual Studio 2015";
string result = input.Substring(input.IndexOf(' ') + 1);
Wenn Sie glücklich sind, in Scheiben schneiden und neu bauen die Zeichenfolge, könnten Sie String.Split
verwenden, um die Zeichenfolge zu zerhacken, dann Enumerable.Skip
Vergangenheit das erste Wort zu überspringen, und dann String.Join
schließlich eine neue Zeichenfolge zu erstellen:
var str = "Microsoft Visual Stuio";
str = string.Join(" ", str.Split(' ').Skip(1));
'myString.Split (““, 2)'? –