我今天刚遇到这个问题,并想知道是否有人知道为什么这个测试可能会失败(取决于文化).目的是检查测试文本是否包含彼此相邻的两个空格,这是根据string.IndexOf(即使我告诉字符串将所有出现的两个空格替换为彼此).经过一些测试后,似乎\xAD在某种程度上导致了这个问题.
public class ReplaceIndexOfSymmetryTest
{
[Test]
public void IndexOfShouldNotFindReplacedString()
{
string testText = "\x61\x20\xAD\x20\x62";
const string TWO_SPACES = " ";
const string ONE_SPACE = " ";
string result = testText.Replace(TWO_SPACES, ONE_SPACE);
Assert.IsTrue(result.IndexOf(TWO_SPACES) < 0);
}
}
Run Code Online (Sandbox Code Playgroud)