2016-09-30 2 views
-1

ich das folgende Stück Code haben:C# Splitting Zeichenfolge

string FullNote = "aaa bbb ccc"; 
string ExistingAdminNote = "bbb"; 

string[] NoteDifference = FullNote.Split(new string[] { ExistingAdminNote }, StringSplitOptions.None); 

for (int ii = 0; ii < NoteDifference.Length; ii++) 
    Response.Write("INCREMENT: " + ii + "--" + NoteDifference[ii] +"<br>"); 

Welche diese Ausgänge:

INCREMENT: 0--aaa 
INCREMENT: 1-- ccc 

Aber was ich es ausgeben möchten, ist dies:

INCREMENT: 0--aaa 
INCREMENT: 1--bbb 
INCREMENT: 2-- ccc 

zB um auch die BBB in das Array bei dem richtigen Index hinzuzufügen.

Ich weiß, dass ich einen Code schreiben kann, um die Zeichenfolgen usw. zu vergleichen, aber gibt es eine Funktion, die dies erreichen kann, ohne dass ich irgendeinen benutzerdefinierten Code schreiben muss?

Grundsätzlich möchte ich die Änderungen an der ursprünglichen Zeichenfolge finden. Es muss nicht auf diese Weise gemacht werden, solange ich die Unterschiede zwischen den 2 Saiten finden kann.

PS Ich weiß nicht, was das Trennzeichen sein wird - es könnte alles

+0

Siehe http: // stackoverflow.com/q/521146/87698. Denken Sie daran, Regex.Escape zuerst Ihr Trennzeichen. – Heinzi

+0

Wenn Sie über das abweichende Trennzeichen bearbeiten, sagen Sie, dass die Eingabe "aaa% bbb% ccc" lauten könnte? –

+1

Wenn Sie nicht wissen, was das Trennzeichen sein wird und Sie nicht wissen, was die Werte sein werden, dann ist das, was Sie versuchen, einfach nicht möglich. –

Antwort

2

sein Du Aufspalten auf bbb wenn Sie Splitting auf das Leerzeichen sein sollte. Ihre Begrenzerzeichenfolge wird nicht in Ihrem Ergebnisarray angezeigt. Das Trennzeichen muss die allgemeine Zeichenfolge sein, die die gewünschten Werte trennt.

+0

das Problem ist, dass ich nicht weiß, was der Begrenzte sein wird – Alex

+0

In Ihrem Beispiel ist es das Leerzeichen "". Wird es anders sein? –

+0

ja könnte es alles sein – Alex

-1

Use '' (Leerzeichen) charater Zeichenfolge dann NoteDifference Array aufzuteilen 3 Elemente haben

0

konnte nicht einfach etwas tun, ziemlich einfach:

 string FullNote = "aaa bbb ccc bbb ddd bbb eee"; 
     string ExistingAdminNote = "bbb"; 

     string[] NoteDifference = FullNote.Split(new string[] { ExistingAdminNote }, StringSplitOptions.None); 

     int index = 0; 
     for (int ii = 0; ii < NoteDifference.Length; ii++) 
     { 
     ResponseWriteLine("INCREMENT: " + index++ + "--" + NoteDifference[ii] + "<br>"); 
     if (ii < NoteDifference.Length - 1) 
      Response.WriteLine("INCREMENT: " + index++ + "--" + ExistingAdminNote + "<br>"); 
     } 
+0

Das ist eine Menge Code, wenn OP nur auf die Leerzeichen aufgeteilt werden muss? – juunas

+1

@juunas: Bitte lesen Sie den Beitrag: Er kennt das Trennzeichen vor dem Start nicht. –

Verwandte Themen