Tag: 字符串

用于查找和删除重复单词的正则表达式

在C#中使用正则表达式,有没有办法在包含各种单词和符号的字符串中查找和删除重复的单词或符号? 防爆。 初始字符串: “我喜欢环境。环境很好。” 所需的字符串: “我喜欢环境。很好” 删除了重复项: “the”,“environment”,“。”

为什么String.IsNullOrEmpty比String.Length快?

ILSpy显示String.IsNullOrEmpty是根据String.Length 。 但是为什么String.IsNullOrEmpty(s)比s.Length == 0更快? 例如,它在此基准测试中的速度提高了5%: var stopwatches = Enumerable.Range(0, 4).Select(_ => new Stopwatch()).ToArray(); var strings = “A,B,,C,DE,F,,G,H,,,,I,J,,K,L,MN,OP,Q,R,STU,V,W,X,Y,Z,”.Split(‘,’); var testers = new Func[] { s => s == String.Empty, s => s.Length == 0, s => String.IsNullOrEmpty(s), s => s == “” }; int count = 0; for (int i = 0; i < 10000; […]

.NET用hex代码的字符串表示替换不可打印的ASCII

我有一个字符串,其中包含一些不可打印的ascii字符,如: “ABCD\x09\x05\r\n” 我想用hex代码编号的ascii字符串表示替换这些字符,所以我得到这样的东西: “ABCD[09][05][0D][0A]” 什么是最好的方法呢? 可以使用正则表达式吗?

在字符串中实现重复字符删除的最快方法(C#)

在C#中,检测String中重复字符并删除它们的最快方法是什么(删除包括重复字符的第一个实例 )? 示例输入: nbHHkRvrXbvkn 输出示例: RrX

性能问题:与String.Format比较

不久之后Jon Skeet的一篇文章在构建CompiledFormatter类的过程中构建了这个想法,用于在循环中使用而不是String.Format() 。 我们的想法是,对String.Format()的调用部分用于解析格式字符串是开销。 我们应该能够通过将代码移到循环之外来提高性能。 当然,技巧是新代码必须与String.Format()行为完全匹配。 本周我终于做到了。 我实际上使用了Microsoft提供的.Net框架源来直接调整它们的解析器(事实certificate, String.Format()实际上将工作String.Format()到StringBuilder.AppendFormat() )。 我提出的代码是有效的,因为我的结果在我的(公认有限的)测试数据中是准确的。 不幸的是,我还有一个问题:表现。 在我的初始测试中,我的代码的性能与普通的String.Format()的性能非常接近。 根本没有任何改进:它甚至一直慢几毫秒。 至少它仍然处于相同的顺序(即:缓慢的量不会增加;即使测试集增长,它仍然在几毫秒内),但我希望有更好的东西。 对StringBuilder.Append()的内部调用可能是实际推动性能的因素,但我想看看这里聪明的人是否可以改进任何东西。 以下是相关部分: private class FormatItem { public int index; //index of item in the argument list. -1 means it’s a literal from the original format string public char[] value; //literal data from original format string public string format; //simple format […]

如何从字符串中删除回车符,换行符,空格

如何从之间删除空格,回车 **START BELOW THIS LINE*** admin 123abc..@! this is an item **END HERE ** 我希望字符串结果最终如下… admin123abc..@!this is an item 我该怎么做呢?

在C#中解析字符串中查询字符串的最佳方法

我在一个普通的字符串中设置了一个类似于querystring的值。 我开始拆分字符串以获得价值,但我开始怀疑我可以在一行中编写这个。 如果有更好的方法可以,请你建议吗? 我试图在Request.QueryString中读取“123”和“abc”,但是来自普通字符串。 protected void Page_Load(object sender, EventArgs e) { string qs = “id=123&xx=abc”; string[] urlInfo = qs.Split(‘&’); string id = urlInfo[urlInfo.Length – 2]; Response.Write(id.ToString()); }

在C#中匹配的模糊文本(句子/标题)

嘿,我正在使用Levenshteins算法来获取源和目标字符串之间的距离。 我也有从0到1返回值的方法: /// /// Gets the similarity between two strings. /// All relation scores are in the [0, 1] range, /// which means that if the score gets a maximum value (equal to 1) /// then the two string are absolutely similar /// /// The string1. /// The string2. /// public static float CalculateSimilarity(String s1, […]

从字符串数组中替换字符串的所有出现

我有一个像以下字符串数组: string [] items = {“one”,”two”,”three”,”one”,”two”,”one”}; 我想立刻用零替换所有的。 那么项目应该是: {“zero”,”two”,”three”,”zero”,”two”,”zero”}; 我找到了一个解决方案如何替换字符串数组中的项? 。 但它只会取代第一次出现。 替换所有事件的最佳方法/方法是哪种?

RegEx.IsMatch()与String.ToUpper()。包含()性能

由于没有不区分大小写的string.Contains() (但是存在一个不区分大小写的string.Equals()版本,这让我感到困惑,但我离题了),使用RegEx.IsMatch()与使用RegEx.IsMatch()之间的性能差异是什么?使用String.ToUpper().Contains() ? 例: string testString = “tHiSISaSTRINGwiThInconSISteNTcaPITaLIZATion”; bool containsString = RegEx.IsMatch(testString, “string”, RegexOptions.IgnoreCase); bool containsStringRegEx = testString.ToUpper().Contains(“STRING”); 我一直听说string.ToUpper()是一个非常昂贵的调用,所以当我想做string.Contains()比较时,我回避使用它,但RegEx.IsMatch()在性能方面有何比较? 是否有更有效的方法进行此类比较?