2017-12-28 9 views
0

Ich spalte derzeit Perioden in meinem Code, fand aber ein paar Probleme, wenn ich es ausgeführt habe. Ich habe mich gefragt, wie ich mich auf "." Statt auf "."Teilen eines Strings mit 2 Zeichen

Aktuelle Code:

Dim words As String() = item.Split(New Char() {"."c}) 

Traum Code:

Dim words As String() = item.Split(New Char() {". "c}) 

Es erlaubt mir nicht, in nach der Zeit, dass die zusätzlichen Raum hinzufügen, gibt es eine Abhilfe?

+0

Es es erlauben tut, weil ein char-Array Zeichen nicht mehr als 2 Zeichen hält Saiten. Eine Möglichkeit besteht darin, durch etwas zu ersetzen, das unwahrscheinlich in der Saite ist, wie '| Bitte hör auf, Sprach-Tags in den Titel zu setzen - das sind die Tags für – Plutonix

+0

@Plutonix könntest du ein wenig ausarbeiten? – Bob

Antwort

3

Um zu erweitern, sehen Sie, wie Replace zuerst verwendet wird? Zuerst verwandelst du die 2 Zeichen in eins, das eindeutig identifizierbar sein wird, und dann kannst du es effektiv teilen.

Dim words As String() = item.Replace(". ", "|").Split(New Char() {"|"c}) 

Und Sie können wahrscheinlich vereinfachen es auch wie dieser:

Dim words As String() = item.Replace(". ", "|").Split("|"c) 

Dass Sie Option Strict On verwenden übernimmt - wenn nicht, können Sie es vereinfachen eher wie dieses, wie der String zu einem umgewandelt werden automatisch char:

Dim words As String() = item.Replace(". ", "|").Split("|") 
+1

Ahh ok, das ist es, wovon ich dachte, dass er darüber sprach. Ich habe es in zwei Zeilen geschrieben, aber dein One Liner ist einfach oh, so hübsch. Danke! – Bob

1

Sie die String.Split Method (String(), StringSplitOptions) Überlastung von String.Split verwenden sollte:

Dim s = "1. 2. 3. 4.5.6" 
Dim a = s.Split({". "}, StringSplitOptions.None) 
Console.Write(String.Join(vbCrLf, a)) 

Ausgänge:

1 
2 
3 
4.5.6 

(je nach Version von Visual Studio, man könnte so etwas wie New String() {". "} statt {". "} benötigen.)

Verwandte Themen