比较两个字符串,忽略换行符和空格

Dan*_*lba 4 .net c# string

我需要比较两个字符串忽略空格和换行符,所以以下字符串应该相等:

"Initial directory structure.\r\n    \r\n    The directory tree has been changed"
"Initial directory structure.\n\nThe directory tree has been changed"
Run Code Online (Sandbox Code Playgroud)

有人知道如何实现它?提前致谢.

jim*_*lan 13

怎么样:

string stringOne = "ThE    OlYmpics 2012!";
string stringTwo = "THe\r\n        OlympiCs 2012!";

string fixedStringOne = Regex.Replace(stringOne, @"\s+", String.Empty);
string fixedStringTwo = Regex.Replace(stringTwo, @"\s+", String.Empty);

bool isEqual = String.Equals(fixedStringOne, fixedStringTwo,
                              StringComparison.OrdinalIgnoreCase);

Console.WriteLine(isEqual);
Console.Read();
Run Code Online (Sandbox Code Playgroud)

  • 丹尼尔酷 - 让我们希望奥运会取得巨大成功:) (7认同)

Dan*_*iff 8

另一种方法是使用String.Compare的CompareOptions.

CompareOptions.IngoreSymbols

指示字符串比较必须忽略符号,例如空格字符,标点符号,货币符号,百分号,数学符号,&符号等.

String.Compare("foo\r\n   ", "foo", CompareOptions.IgnoreSymbols);
Run Code Online (Sandbox Code Playgroud)

https://msdn.microsoft.com/en-us/library/system.globalization.compareoptions(v=vs.110).aspx

  • `CultureInfo.CurrentCulture.CompareInfo.Compare(lhs,rhs,CompareOptions.IgnoreSymbols)` (2认同)