2017-07-13 32 views
-4

我想比较跨多行的两个字符串。C#比较跨多行的两个字符串

实施例:

string myStr1= "Microsoft’s approach to IoT <br> 
Pham Tien Dung – Developer Evangelist Microsoft Vietnam" 

string myStr2 = "Microsoft’s approach to IoT <br> 
Pham Tien Dung – Developer Evangelist Microsoft Vietnam" 

途径:

  1. 与逐字串试过如下。

    string myStr3 = @myStr1 
    string myStr4 = @myStr2 
    

和继续进行字符串比较和接收错误。

2.用正则表达式(删除空格,换行)。仍收到错误。

请帮我解决这个问题。

+8

什么是错误?你怎么做比较?显示代码 – musefan

+0

此C#代码无效。告诉我们你的字符串是如何初始化的以及它的实际外观。 –

+0

您可以将字符串与换行符进行比较。你不需要删除它们。 –

回答

1

这应该工作,通知地方@位于:

string myStr1= @"Microsoft’s approach to IoT <br> 
Pham Tien Dung – Developer Evangelist Microsoft Vietnam"; 

string myStr2 = @"Microsoft’s approach to IoT <br> 
Pham Tien Dung – Developer Evangelist Microsoft Vietnam"; 

bool areStringsSame = myStr1 == myStr2; 
//or, like this: 
bool stringsSame = myStr1.Equals(myStr2); 
+1

或第三个选项'bool stringsSame = string.Equals(myStr1,myStr2);' – MKasprzyk

+0

@Nino,好吧,myStr1,myStr2是从外部读取的。所以,我只是尝试了上面提到的代码片段。请看看atit。 – Dhanaprabhu

+0

@Dhanaprabhu你是从文件中读取字符串吗? – ElectricRouge

0

您应该应用Equal方法,你的代码可能是这样的:

string myStr1= @"Microsoft’s approach to IoT <br> 
Pham Tien Dung – Developer Evangelist Microsoft Vietnam" 

string myStr2 = @"Microsoft’s approach to IoT <br> 
Pham Tien Dung – Developer Evangelist Microsoft Vietnam" 

if (myStr1.Equals(myStr2)) // Yes 

如果你想知道为什么我把@之前的一个字符串=>解释在下面!

它将字符串标记为逐字字符串文本 - 字符串中任何通常会被解释为转义序列的字符都将被忽略。

因此,例如"C:\\Users\\John" is the same as @"C:\Users\John"