如何更快的删除String中的空格[未完]
背景:此文章主要源于网址[1]所描述的,文中大部分方法亦是[1]中实现的。
下面介绍集中删除空格的方法:
方法1:按空格分割后再拼接
/// <summary>
/// 按空格分割后拼接——Join
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string TrimAllWithSplitAndJoin(string str)
{
return string.Join("", str.Split(default(string[]), StringSplitOptions.RemoveEmptyEntries));
} /// <summary>
/// 按空格分割后拼接——Concat
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string TrimAllWithSplitAndConcat(string str)
{
return string.Concat(str.Split(default(string[]), StringSplitOptions.RemoveEmptyEntries));
}
方法2:利用Linq一个一个字符拼接【注:[1]网址中对IsWhiteSpace还做了优化】
/// <summary>
/// 利用Linq一个一个字符拼接
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string TrimAllWithLinq(string str)
{
return new string(str.Where(c => !char.IsWhiteSpace(c)).ToArray());
}
方法3:利用正则表达式替换空格为空字符——看起来比较高大上【注:[1]网址中将Regex的实例化放到了方法外以减少实例化时间】
/// <summary>
/// 利用正则表达式替换空格为空字符
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string TrimAllWithRegex(string str)
{
Regex whitespace = new Regex(@"\s+", RegexOptions.Compiled);
return whitespace.Replace(str, "");
}
方法4:自己实现使用字符数组一个一个拼接
/// <summary>
/// 自己实现一个字符一个字符拼接
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string TrimAllWithCharArray(string str)
{
int len = str.Length;
char[] strTochars = str.ToCharArray();
int index = 0;
for (int i = 0; i < len; i++)
{
char ch = strTochars[i];
if (!char.IsWhiteSpace(ch))
strTochars[index++] = ch;
}
return new string(strTochars, 0, index);
}
方法5:利用String自带方法Replace替换【注:[1]网址中提到了此法其实是有缺陷的】
/// <summary>
/// 使用String的Replace功能替换
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string TrimAllWithStringReplace(string str)
{
return str.Replace(" ", "");
}
关于性能测试准备使用老赵的CodeTimer。
相关网址:
- [1] Fastest method to remove all whitespace from Strings in .NET——非常不错的文章,建议研读
- [2] Efficient Algorithms to Trim In-String White/Blank Spaces——此文作者灵感应该也是来自文章[1]
如何更快的删除String中的空格[未完]的更多相关文章
- String 中去掉空格
JAVA中去掉空格 1. String.trim() trim()是去掉首尾空格 2.str.replace(" ", ""); 去掉所有空格,包括首尾.中间 ...
- JS中删除字符串中的空格
问题描述: 在进行字符串操作时,由于字符串中存在较多的空格,因此需要考虑取消字符串中的空格 问题解决: (1)删除字符串中的前导空格(字符串的前面的空格): 注意:这里使用 ...
- oracle删除字段中的空格、回车及指定字符
create or replace procedure PROC_test is --Description:删除字段中的指定字符(回车chr(13).换行chr(10)) --By LiChao - ...
- js 删除字符串中所有空格
//去除头尾和中间空格,制表符 function trimSpaces(Str){ var ResultStr = ""; ...
- 【c++】删除string中指定的字符
使用string::iterator(字符串迭代器)从开始 str.begin() 迭代到最后 str.end() ,再使用string.erase(const_iterator p)函数来删除迭代器 ...
- 更快的理解js中循环嵌套
[循环控制语句] break语句:终止本层循环,继续执行循环后面的语句:(当循环有多层时,break只会跳出一层循环) continue语句:跳过本次循环,继续执行下次循环: (对于for循环,con ...
- PHP删除字符串中的空格和换行符 将字符串中的连续多个空格转换为一个空格
//删除空格和回车 function trimall($str){ $qian=array(" "," ","\t","\n&qu ...
- Python删除列表中的空格
list1 = ['122','2333','3444',' ','422',' ',' ','54',' '] list1=[x.strip() for x in list1 if x.strip( ...
- 字符串的查找删除---C++中string.find()函数与string::npos
给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串 输入: 输入只有一组数据 输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止 输出: 删除输入的短字符串 ...
随机推荐
- git branch使用
(1) git配置global信息: git config --global user.name "Your Name" git config --global user.emai ...
- Git的维护(git gc和git fsck)
原文: http://gitbook.liuhui998.com/4_10.html 一.保证git良好的性能 在大的仓库中, git靠压缩历史信息来节约磁盘和内存空间. 压缩操作并不是自动进行的, ...
- Union-Find Algorithm
Union-Find Algrithm is used to check whether two components are connected or not. Examples: By using ...
- MVC RadioButton
本文介绍如何创建radiobutton. Step 1: 创建一个类用于获取所有的选项. public class Company { public string SelectedDepartment ...
- 一个静态的HTML页面用jquery ajax登录到sharepoint页面
$.ajax({ type: "get", url: "http://", d ...
- 【leetcode】Populating Next Right Pointers in Each Node II
Populating Next Right Pointers in Each Node II Follow up for problem "Populating Next Right Poi ...
- 对于Tomcat服务器环境变量和启动配置的一点补充
我们之前第一次使用Tomcat服务器运行jsp应用时,曾经给Tomcat配置过一个环境变量CATALINA_HOME,这个变量指定了Tomcat的安装位置,对于多个开发项目,我们一般会释放多个tomc ...
- ffmpeg-20160517-git-bin
ESC 退出 0 进度条开关 1 屏幕原始大小 2 屏幕1/2大小 3 屏幕1/3大小 4 屏幕1/4大小 S 下一帧 [ -2秒 ] +2秒 ; -1秒 ' +1秒 下一个帧 -> -5秒 f ...
- JAVA volatile 关键字
一.volatile(易变的) Java 语言提供了一种稍弱的同步机制,即volatile修饰变量.用来确保将变量的更新操作通知到其他线程,保证了新值能立即同步到主内存,以及每次使用前立即从主内存刷新 ...
- 【编程之美】2.5 寻找最大的k个数
有若干个互不相等的无序的数,怎么选出其中最大的k个数. 我自己的方案:因为学过找第k大数的O(N)算法,所以第一反应就是找第K大的数.然后把所有大于等于第k大的数取出来. 写这个知道算法的代码都花了2 ...