Tag: 代理对

如何创建一个带有代理对的字符串?

我在Jon Skeet的博客上看到这篇文章 ,他谈到了字符串翻转。 我想尝试他自己展示的例子,但它似乎有效……这让我相信我不知道如何创建一个包含代理对的字符串,这实际上会导致字符串反转失败。 如何实际创建一个带有代理对的字符串,以便我自己可以看到失败?

如何反转包含代理项对的字符串

我写过这个方法来反转一个字符串 public string Reverse(string s) { if(string.IsNullOrEmpty(s)) return s; TextElementEnumerator enumerator = StringInfo.GetTextElementEnumerator(s); var elements = new List(); while (enumerator.MoveNext()) { var cs = enumerator.GetTextElement().ToCharArray(); if (cs.Length > 1) { elements.AddRange(cs.Reverse()); } else { elements.AddRange(cs); } } elements.Reverse(); return string.Concat(elements); } 现在,我不想开始讨论如何提高代码效率或者如何使用一个代替我的代码。 我知道你可以执行Xors和各种其他事情来改进这段代码。 如果我想稍后重构代码,我可以轻松地完成,因为我有unit testing。 目前,这正确地反转了BML字符串(包括带有像”Les Misérables” “Les Mise\u0301rables”这样的重音符号的字符串)和包含组合字符的字符串,例如”Les Mise\u0301rables” 。 我的测试包含代理对,如果它们表达如此 Assert.AreEqual(“𠈓”, _stringOperations.Reverse(“𠈓”)); 但如果我表达这样的代理人对 […]