2017-07-13 75 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"