string split, die durch den index / params?
Nur bevor ich Schreibe, meine eigene Funktion, wollte nur überprüfen, ob es existiert eine Funktion wie string.split(string input, params int[] indexes)
im .NET-Bibliothek?
Sollte diese Funktion split die Zeichenfolge auf Indizes ich, es weiterzugeben.
Edit: ich sollte nicht Hinzugefügt haben, müssen Sie die Zeichenfolge.join Satz - es war verwirrend.
- Ich nehme an, sollte die Methode split der Eingabe-string an jedem index-element? So
string.Split("1234567", 2, 5) == { "12", "345", "67" }
? Wenn dem so ist, gibt es keine solche Methode. Wenn nicht, kannst du das etwas erläutern? - Was genau wollen Sie erreichen? Split und Join haben sehr unterschiedliche Ergebnisse und stellen Sie Ihre Frage verwirrend.
- das ist richtig, dlev. Ich nehme es von der Feindseligkeit dieser thread ist die Generierung der Antwort "Nein".
- Fragen wie diese sind oft das Ergebnis von Faulheit auf die der Fragende Teil. In diesem Fall habe ich es interpretieren als "ich kann nicht scheinen, einen zu finden; kann das jemand bestätigen, bevor ich es schreiben?" In jedem Fall keine solche Funktion existiert, die in der base-class-library, aber zum Glück schreiben Sie Ihre eigenen ist sehr einfach. Viel Glück!
- maxp: das ist keine Feindseligkeit - aber deine Frage hätte besser/klarer, indem Sie zum Beispiel ein Beispiel, wie Sie möchten, rufen Sie die Methode und das, was zurückgegeben werden soll.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie die
String
Instanz-Methode Substring.params int[] indexes
parameter, die würden einfach eine Schleife der Zeichenfolge.Substring-Aufrufe und die Ergebnisse in einem array.Alle anderen Antworten schien mir einfach zu kompliziert, so nahm ich einen stab.
Die Split-Methode teilt einen string, basierend auf einer Anerkennung Muster. Perfekt für den Abbau von Komma-getrennten Listen etc.
Aber Sie haben Recht, es gibt keinen eingebauten string-Methoden zu erreichen, was Sie wollen.
Eine mögliche Lösung:
Es ist immer reguläre Ausdrücke.
Hier ist ein Beispiel, von dem kann man erweitern auf:
Hier ist eine Funktion kapselt obige Logik:
Dies geschrieben wurde, Recht schnell aber ich glaube es verdeutlicht meine Punkte und meine Punkte hervorhebt, die auf den Autor von Kommentar, Michael.
Diese nicht direkt beantworten Ihre verallgemeinerte Frage, aber in dem, was wahrscheinlich häufiger der Fall (oder zumindest der Fall, für die war ich auf der Suche nach einer Antwort, als ich kam auf diese Frage ALSO), wo
indexes
ist ein Einzelzimmerint
diese Erweiterung die Methode ist ein wenig sauberer als die Rückkehr einerstring[]
- array, speziell in C# 7.Für was es Wert ist, habe ich ein Benchmark mit
string.Substring()
gegen die Schaffung von zweichar[]
arrays aufrufentext.CopyTo()
und die Rückkehr von zwei strings durch den Aufrufnew string(charArray)
. Mitstring.Substring()
war etwa doppelt so schnell.C# 7-syntax
jdoodle.com Beispiel
C# 6 syntax
jdoodle.com Beispiel
Hinweis: die Verwendung
Tuple<string, string>
in Versionen vor C# 7 nicht sparen Sie viel in den Weg der Ausführlichkeit, und es könnte tatsächlich sauberer sein, um einfach nur wieder einstring[2]
array.Version mit "List< string >" als Gegenleistung.
Anrufer
Methode