c# – String.Replace不能正常工作
发布时间:2020-12-15 17:40:18 所属栏目:百科 来源:网络整理
导读:这是非常奇怪的,因为我使用Replace功能数千次.这是我的代码: while (d.IndexOf("--") != -1) d=d.Replace("--","-"); 当我跟踪时,这是变量值: "?????,??? ????,girl name,??????--?-???-??-???-???-?-????-??-???-?????-????-??????-???-??-???" 但是当d的
这是非常奇怪的,因为我使用Replace功能数千次.这是我的代码:
while (d.IndexOf("--") != -1) d=d.Replace("--","-"); 当我跟踪时,这是变量值: "?????,??? ????,girl name,??????--?-???-??-???-???-?-????-??-???-?????-????-??????-???-??-???" 但是当d的值为: "?????,??????-?-???-??-???-???-?-????-??-???-?????-????-??????-???-??-???" 有人可以告诉我为什么吗 解决方法
那是因为这个:
var d1 = "?????,??????--?-???-??-???-???-?-????-??-???-?????-????-??????-???-??-???"; 是不一样的: var d2 = "?????,??????---???-??-???-???-?-????-??-???-?????-????-??????-???-??-???"; 你的字符串中的最后三个字符实际上不是unicode – 自己尝试一下: var d1 = "?????,??????--?-???-??-???-???-?-????-??-???-?????-????-??????-???-??-???"; var d2 = "?????,??????---???-??-???-???-?-????-??-???-?????-????-??????-???-??-???"; while (d.IndexOf("--",StringComparison.Ordinal) != -1) d1 = d1.Replace("--","-"); Console.WriteLine(d1); // the last characters are left while (d2.IndexOf("--",StringComparison.Ordinal) != -1) d2 = d2.Replace("--","-"); Console.WriteLine(d2); // All clear 只是FYI: var d = "?????,??????--?-???-??-???-???-?-????-??-???-?????-????-??????-???-??-???"; while (d.IndexOf("--",System.StringComparison.Ordinal) != -1) d = d.Replace("--","-"); 因为它使用了顺序规则,即文化独立的unicode值,并且运行速度更快. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |