Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有效地将分隔字符连接到单词中_C#_String - Fatal编程技术网

C# 有效地将分隔字符连接到单词中

C# 有效地将分隔字符连接到单词中,c#,string,C#,String,我正在开发一个基于NLP的应用程序,它使用全局键盘挂钩来读取按键。这是它的工作界面: BIEngine.Hook.KeyboardListener KListener = new BIEngine.Hook.KeyboardListener(); private void Application_Startup(object sender, StartupEventArgs e) { KListener.KeyDown += new BIEngine.Hook.RawKeyEventHa

我正在开发一个基于NLP的应用程序,它使用全局键盘挂钩来读取按键。这是它的工作界面:

BIEngine.Hook.KeyboardListener KListener = new BIEngine.Hook.KeyboardListener();
private void Application_Startup(object sender, StartupEventArgs e)
{
    KListener.KeyDown += new BIEngine.Hook.RawKeyEventHandler(KListener_KeyDown);
}
void KListener_KeyDown(object sender, BIEngine.Hook.RawKeyEventArgs args)
{
    Trace.WriteLine(args.ToString());
}
现在,我为用户获取空格、回车、制表符、句点等分隔的字母集。因此,如果用户在他的软件窗口中键入“got today”,我将得到

g
o
t

t..
那么,最有效的方法是什么(因为该应用程序将在后台不断运行)将这些字母连接起来,形成不带空格和其他分隔符的单词,并对特定的单词做出反应,例如,如果用户今天键入
,它将被传递到NLP库,并向用户提供某种反馈。
感谢您提供的任何建议、代码等。

我强烈建议您使用最简单的方法来满足您的需求,不要再担心性能问题。众所周知,过早优化可能会花费大量时间,但效益甚微

如果你从来没有让字符串变得特别长(比如说,2000个字符),那么我建议你简单地附加到一个普通的
字符串
,每当它增长超过100个字符时就修剪它。我非常怀疑您是否能够观察到这对性能的任何影响。只有当你遇到可测量的性能问题(比如,你注意到程序在用户键入时占用超过0.1%的CPU时间)时,你是否应该考虑优化这个问题。我打赌你会发现,使用CPU的不是字符串连接,而是其他一些东西

为什么??因为如果你试图在问题出现之前优化一切,你将永远无法完成很多实际工作。大多数情况下,优化是不必要的


话虽如此,逐字符匹配字符串的最有效方法是使用有限状态机,但我觉得解释如何进行这一操作超出了这个问题的范围。

看了你的文章,我自然而然地想到了使用write而不是writeline,但我不知道这对您的实际配置有什么影响

这将使它保持“同一条线”,但目的是什么

您还可以在应用程序中插入块代码以执行视觉或逻辑转换,然后显示或处理它。
这样,您就不必在应用程序启动过程中添加额外的工作负载。

有人吗?@ZoharPeled它足够有效吗?至少据我所知,这可能是最有效的方法。我熟悉自动机理论和有限状态机,毫无疑问,它们的运行速度最快。然而,我想知道是否有任何基于.net的技巧等更快的性能,但似乎你的解释真的是我需要的。也许我根本不在乎。谢谢你周到的意见。