如何比较asp.net中两个字符串之间的更改单词

时间:2016-08-24 12:31:58

标签: c#

在我的应用程序中,我有两个字符串,我需要显示计数的缺失单词,插入计数和修改它们之间的单词的单词。 例如:

  string variable1="When you are writing server code you can never be sure what the IP address you see is refereeing to.In fact some users like it this way.";
  string variable2="when are wrting server code yu cannn never be sure **Demo** what the address you is to.In fact **Demo1** some users like it this way";

结果应为:

  Missing Words: you, see ,IP
  Missing Words count: 3

  Inserted: Demo, Demo1 
  Inserted Words count: 2

  Modified words : wrting,yu ,cannn ,refering
  Modified words count :4

我试过这个但是在修改后的单词中没有正确显示

string variable1="When you are writing server code you can never be sure what the IP address you see is refereeing to.In fact some users like it this way.";
   string variable2="when are wrting server code yu cannn never be sure **Demo** what the IP address you see is to.In fact **Demo1** some users like it this way";

     //Missing Word Count    
     var result = variable1.Split(new char[] { ' ' }).Except(variable2.Split(new char[] { ' ' })).ToArray();
     count = result.Length;
     Label2.Text += "Missing Word Count: " + count.ToString() + "<br/><br/>";
     for (int i = 0; i < count; i++)
     {
       Label1.Text += "Missing Word: " + result[i].ToString() + "<br/><br/>";
     }


     //Insert Word
     var result1 = variable2.Split(new char[] { ' ' }).Except(variable1.Split(new char[] { ' ' })).ToArray();
     count = 0;
     count = result1.Length;
     for (int i = 0; i < count; i++)
     {
         Label3.Text += "Insert Word: " + result1[i].ToString() + "<br/><br/>";

     }
     Label4.Text += "Insert Word Count: " + count.ToString() + "<br/><br/>";    

     //Modifide Words
     string[] tempArr1 = variable1.Split(' ');  
     string[] tempArr2 = variable2.Split(' ');  
     int counter = 0;  

     for (int i = 0; i < tempArr1.Length; i++)  
     {  
         if (tempArr1[i] != tempArr2[i])  
         {  
            lblwords.text=tempArr1[i] + ", "+ tempArr2[i];  
             counter++;  
         }  
     } 

任何人都可以帮我解决这个问题。

谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用Linq来实现此目标

string s1 = "When you are writing server code you can never be sure what the IP address you see is refereeing to.In fact some users like it this way.";
string s2 = "are wrting server code yu cannn never be sure what the IP address you see is to.In fact some users like it this way.";
var list = s2.Split(' ').Where(x => (!s1.Split(' ').Contains(x))).ToList();

int count = list.Count;
foreach (var item in list)
{
 //your code
}