2016-09-30 95 views
-1

我有以下一段代碼:C#分割字符串

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>"); 

它輸出這樣的:

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

但我希望它的輸出是這樣的:

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

如還要在正確的索引處將bbb添加到數組中。

我知道我可以寫一些代碼來比較字符串等,但是有沒有一個函數可以實現這一點,而我不必編寫一些自定義代碼?

基本上我想找到對原始字符串的更改。不需要這樣做,只要我能找到兩個字符串之間的區別。

PS我不知道的分隔符是什麼 - 它可以是任何東西

+0

請訪問http:// stackoverflow.com/q/521146/87698。記得首先使用Regex.Escape分隔符。 – Heinzi

+0

每個你編輯關於不同的分隔符,所以你說輸入可能是「aaa%bbb%ccc」? –

+1

如果你不知道分隔符是什麼,並且你不知道這些值是什麼,那麼你試圖做的事情是不可能的。 –

回答

2

你在分裂時bbb你應該在空格字符分割。您的分隔符字符串不會顯示在您的結果數組中。分隔符需要是分隔所需值的常用字符串。

+0

問題是我不知道分隔符是什麼 – Alex

+0

在你的例子中,它是空格字符「」。它會不同嗎? –

+0

是的,它可以是任何東西 – Alex

-1

使用「」(空格)系統字符分割你的字符串,然後你NoteDifference陣列將有3個要素

0

你不能只是做一些事情,因爲這很簡單:

 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

當OP需要分割空間時,這是很多代碼? – juunas

+1

@juunas:請閱讀帖子:他在開始之前不知道分隔符。 –