c# 删除多余空格的最快方法

2024-01-02

将多余的空格替换为一个空格的最快方法是什么?
e.g.

from

foo      bar 

to

foo bar

最快的方法?迭代字符串并在 a 中构建第二个副本StringBuilder一个字符一个字符,每组空格只复制一个空格。

越容易打字Replace变体将创建大量额外字符串(或浪费时间构建正则表达式 DFA)。

编辑比较结果:

Using http://ideone.com/NV6EzU http://ideone.com/NV6EzU,n=50(必须在 ideone 上减少它,因为花了很长时间,他们不得不终止我的进程),我得到:

正则表达式:7771 毫秒。

字符串生成器:894 毫秒。

确实正如所料,Regex对于这么简单的事情来说效率非常低。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c# 删除多余空格的最快方法 的相关文章

随机推荐

  • 使用 OpenSSL.NET 和现有密钥解密 RSA

    我有以下代码使用 OpenSSL Net 生成 OpenSSL RSA 公钥和私钥 但是 我似乎找不到使用给定私钥解密数据的方法 我知道如果我调用生成密钥 然后调用相应的方法来加密和解密数据 它就可以正常工作 但是 如果我尝试从给定公钥的外
  • 找到R中两个数据帧之间的公共ID

    有以下数据框 id1 lt c 1 2 3 4 5 spent lt c 10 20 30 40 50 id2 lt c 1 3 4 x lt c 1 2 2 df1 lt data frame id1 spent df2 lt data
  • MVC 架构和模态对话框窗口

    我正在开发一个MVC架构的项目 它应该是一个管理一些客户的简单应用程序 MainModel MainView 和 MainController 类使主窗口显示客户表的内容并让用户插入 删除或编辑客户 我的问题是插入和编辑按钮应该显示一些对话
  • 将主键int类型更改为serial

    有没有办法在不删除表的情况下将现有主键类型从 int 更改为串行 我表里已经有很多数据了 我不想删除它 将 int 转换为序列或多或少仅意味着向值添加序列默认值 http www postgresql org docs 9 3 static
  • Kubernetes POD 参数未传递到服务,但 Docker 参数正确传递

    问题陈述 我已经成功创建了一个 Docker 镜像docker io joethecoder2 spring boot web 它已经使用命令行参数进行了测试 并且这些参数可以在 Docker 本地正常工作 我正在尝试将传递给 Docker
  • 推送视图应以透明背景显示

    我只是从一种观点推论另一种观点 在此代码之后 推送的视图将显示为透明 我之前已经用过很多次了 就这么简单 settings set settings alloc initWithNibName settings bundle nil set
  • req.body 无法作为数组读取

    我正在使用 node js 接收发布请求 请求正文在使用打印后具有此内容console log object 1 deviceType iPad Retina guid DF1121F9 FE66 4772 BE74 42936F1357F
  • 添加锚点到 RedirectToAction 结果?

    我正在尝试创建一个类似于的扩展方法MVCContrib 的 RedirectToAction 方法 http mvccontrib codeplex com SourceControl changeset view c0a43d6843a7
  • iOS Foundation:系统字体大小

    我想知道iOS应用程序tableView中的systemFontSize是否是always文本标签也一样吗 这是取决于风格 例如当我NSLog f UIFont systemFontSize 我已经14 0了这总是一样的吗 更重要的是 如何
  • 创建具有多个选项的 Python 函数的最佳方法?

    我定义了一堆自定义函数 并发现其中很多包含一些相同或相似的代码块 例如 仅包含略有不同的字符串或参数 所以像这样 def func1 a b c some identical code some similar code more iden
  • 有没有办法将 Linux 管道设置为非缓冲或行缓冲?

    我的程序正在控制 Linux 上的外部应用程序 通过管道将输入命令传递到外部应用程序 stdin 并通过管道从外部应用程序 stdout 读取输出结果 问题在于 对管道的写入是按块缓冲的 而不是按行缓冲的 因此在我的应用程序接收外部应用程序
  • 如何在 Bigquery 中查询多个 Firebase 项目?

    如何放置 Select 查询以从多个 Firebase 项目中提取数据 如何在单个查询中查询 abc 项目和 xyz 项目 目前 我正在放置两个查询来从项目 abc 和 xyz 及其数据集表中提取数据 查询abc项目 SELECT app
  • 如何使用低级 8 位标志作为条件?

    在我的键盘钩子中 每次按键都会有一个标志 表明它是否被注入 http msdn microsoft com en us library ms644967 VS 85 aspx http msdn microsoft com en us li
  • 2d std::vector 连续内存?

    考虑下面的代码 它分配了一个 2dstd vector
  • chmod 757 安全吗?

    由于我在共享主机上 我想添加一个图像托管脚本 似乎755不允许我上传图像 所以我将文件夹更改为757 chmod到757安全吗 一句话 不 用两个字来说 见鬼 不 让我们解释一下757 那就是 所有者 读写执行 对文件具有权限的组 读取 执
  • 在 MS Access 中插入具有日期范围的多条记录

    希望有人可以帮忙吗 我对 Access 2016 还很陌生 我的任务是为我们学校的早餐和课后俱乐部构建一个非常简单的预订系统 我有一个包含儿童列表的表 主键是 ChildID 另一个表 CLUBS 列出了 5 个可用的俱乐部 第三个表 BO
  • 使用 Castle.Windsor 设置 FluentValidation 时出现问题

    我有一个 asp net MVC 4 5 应用程序 使用 Castle Windsor 3 2 2 作为 DI 我第一次尝试添加 FluentValidation 版本 5 0 0 1 我创建了继承自 ValidatorFactoryBas
  • 为什么使用引用限定符 & 声明删除的赋值运算符

    据我所知 用户声明的赋值运算符与内置运算符不同 如所解释的这个 stackoverflow 答案 https stackoverflow com a 16995559 3054219 但是为什么要在已删除的运算符中添加 呢 C class
  • 如何在跑步时更改 Google 地图的语言?

    我不想反转地理编码并获取两种语言 阿拉伯语和英语 的地址 因此我想获取一种语言的地址 然后更改 API 的语言并获取另一种语言的地址 因为我找不到参数发送到地理编码器以确定语言 有什么建议么 加载 API 时可以通过附加来选择语言langu
  • c# 删除多余空格的最快方法

    将多余的空格替换为一个空格的最快方法是什么 e g from foo bar to foo bar 最快的方法 迭代字符串并在 a 中构建第二个副本StringBuilder一个字符一个字符 每组空格只复制一个空格 越容易打字Replace