jjzjj

stringbuilder

全部标签

c# - KeyEventArgs.Key 到 char

有没有办法将WPF的KeyEventArgs.Key转换为Char?我尝试使用KeyInterop:varx=(Char)KeyInterop.VirtualKeyFromKey(e.Key);对于数字和字母,它工作正常,但对于其他字符则不然。例如。对于OemComma,它返回“1/4”而不是“,”。我需要它来防止用户在TextBox中输入除数字和分隔符(即逗号或句点)以外的任何字符。 最佳答案 更新:下面的评论找到了原文http://stackoverflow.com/a/5826175/187650在我忘记的地方找到了这个。仍在

c# - StringBuilder 中最快的搜索方法

我有一个名为stb_Swap_Tabu的StringBuilder用于存储类(class)名称,我正在使用以下方法查找类(class):stb_Swap_Tabu.ToString.Contains("CourseName")就我而言,性能是最重要的问题。有没有更快的方法? 最佳答案 StringBuilder并非真正用于所有字符串目的。如果你真的需要搜索一个,你必须自己写一个方法。有几种适合不同情况的字符串搜索算法。以下是Knuth–Morris–Pratt算法的一个简单实现,它只关心顺序匹配(没有大小写折叠,没有与文化相关的排序

c# - 是否需要在替换 StringBuilder 中的字符串之前进行检查(使用 "Contains"或 "IndexOf"等函数)?

C#中是否有IndexOf或Contains方法。下面是代码:varsb=newStringBuilder(mystring);sb.Replace("abc","a");stringdateFormatString=sb.ToString();if(sb.ToString().Contains("def")){sb.Replace("def","aa");}if(sb.ToString().Contains("ghi")){sb.Replace("ghi","assd");}正如您可能已经注意到的那样,我在上面一次又一次地使用ToString(),我想避免这种情况,因为它每次都会创建

c# - stringbuilder 与字符串连接

在我的项目中,我正在遍历数据View结果。stringhtml=string.empty;DataViewdV=data.DefaultView;for(inti=0;idV中的行数将始终为3或4。对于这种情况,使用字符串concat+=opearator还是StringBuilder更好,为什么? 最佳答案 我会在这里使用StringBuilder,因为它描述了您正在做的事情。对于3或4个字符串的简单连接,它可能不会产生任何显着差异,并且字符串连接可能甚至会稍微快一些-但如果你错了并且有很多行,StringBuilder将开始变得

c# - StringBuilder 和字符串相等性检查

当System.Console.WriteLine(s==t);返回false时,我正在尝试此代码示例和OpTest。有人可以解释一下吗?publicstaticvoidOpTest(Ts,Tt)whereT:class{System.Console.WriteLine(s==t);}staticvoidMain(){strings1="строка";System.Text.StringBuildersb=newSystem.Text.StringBuilder(s1);System.Console.Write(sb);strings2=sb.ToString();OpTest(s1

C# 如何使用 WM_GETTEXT/GetWindowText API/窗口标题

我想获取应用程序的控件/句柄的内容..这是实验代码..Process[]processes=Process.GetProcessesByName("Notepad");foreach(Processpinprocesses){StringBuildersb=newStringBuilder();IntPtrpFoundWindow=p.MainWindowHandle;Lists=GetChildWindows(pFoundWindow);//functionthatreturnsa//listofhandlefromchildcomponentonagivenapplication.

c# - 用于字符串连接的 StringBuilder 抛出 OutOfMemoryException

我们大多倾向于遵循上述最佳实践。看看StringvsStringBuilder但StringBuilder可能会抛出OutOfMemoryException,即使有足够的可用内存也是如此。它抛出OOM异常,因为它需要“连续的内存块”。一些引用链接StringBuilderOutOfMemoryException还有很多......你们中有多少人遇到过这个问题或意识到了这个问题,你们做了什么来解决这个问题?有什么我遗漏的吗?P.S:我不知道这一点。我已经改写了这个问题。***同样的事情也适用于手动连接(我会验证这一点并更新SO)。另一件让我担心的事情是系统中有足够的内存。这就是我在这里提

c# - 将 StringBuilder 流式传输到文件

我需要创建一个大型文本文档。我目前使用StringBuilder制作文档,然后调用File.WriteallText(filename,sb.ToString)。不幸的是,这现在开始抛出内存异常。是否有更好的方法将StringBuilder流式传输到文件,或者是否有其他我应该使用的技术? 最佳答案 不要使用StringBuilder,请尝试使用TextWriter(它具有大致相似的API,但可以写入许多底层目标,包括文件)-即using(TextWriterwriter=File.CreateText(path)){//loopet

java - 如何进行良好的性能比较测试?

要编写好的比较测试,您必须运行它数千(百万)次。它将(在大多数情况下)平衡其他程序的影响。但是如果JVM可以影响结果。例如:第一个解决方案是:finalStringBuilderstringBuilder=newStringBuilder();stringBuilder.append(getStrOne());stringBuilder.append(getStrTwo());finalStringresult1=stringBuilder.toString();第二个是:finalStringresult2=getStrOne()+getStrTwo();我不知道哪个更好,因为JVM

java - 澄清 StringBuilder 引用和方法执行顺序

这段代码StringBuilderb1=newStringBuilder("hello");b1.append(b1.append("!"));System.out.println("b1="+b1);将打印b1=hello!hello!因为内部的append先被执行并修改了对象b1;然后对外部b1求值(现在它等于hello!)并将相同的字符串附加到它。所以执行内部表达式原始对象被修改外部表达式在修改后的对象上执行但是现在,为什么这段代码会抛出NullPointerException?StringBuilders1=null;StringBuilders2=newStringBuild