2016-09-30 119 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:请阅读帖子:他在开始之前不知道分隔符。 –