背景:此文章主要源于网址[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。

相关网址:

如何更快的删除String中的空格[未完]的更多相关文章

  1. String 中去掉空格

    JAVA中去掉空格 1. String.trim() trim()是去掉首尾空格 2.str.replace(" ", ""); 去掉所有空格,包括首尾.中间 ...

  2. JS中删除字符串中的空格

    问题描述:         在进行字符串操作时,由于字符串中存在较多的空格,因此需要考虑取消字符串中的空格 问题解决:       (1)删除字符串中的前导空格(字符串的前面的空格): 注意:这里使用 ...

  3. oracle删除字段中的空格、回车及指定字符

    create or replace procedure PROC_test is --Description:删除字段中的指定字符(回车chr(13).换行chr(10)) --By LiChao - ...

  4. js 删除字符串中所有空格

    //去除头尾和中间空格,制表符 function trimSpaces(Str){               var ResultStr = "";               ...

  5. 【c++】删除string中指定的字符

    使用string::iterator(字符串迭代器)从开始 str.begin() 迭代到最后 str.end() ,再使用string.erase(const_iterator p)函数来删除迭代器 ...

  6. 更快的理解js中循环嵌套

    [循环控制语句] break语句:终止本层循环,继续执行循环后面的语句:(当循环有多层时,break只会跳出一层循环) continue语句:跳过本次循环,继续执行下次循环: (对于for循环,con ...

  7. PHP删除字符串中的空格和换行符 将字符串中的连续多个空格转换为一个空格

    //删除空格和回车 function trimall($str){ $qian=array(" "," ","\t","\n&qu ...

  8. Python删除列表中的空格

    list1 = ['122','2333','3444',' ','422',' ',' ','54',' '] list1=[x.strip() for x in list1 if x.strip( ...

  9. 字符串的查找删除---C++中string.find()函数与string::npos

    给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串 输入: 输入只有一组数据 输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止 输出: 删除输入的短字符串 ...

随机推荐

  1. C# 毕业证书打印《二》

    当证书的打印功能得以实现,最关键的功能便是数据. 通过对打印的了解,打印中最关键的功能便是打印事件中的方法. private void pd_PrintPage(object sender, Prin ...

  2. (转) Docker swarm 之介绍与使用

    今天,在站内看到一篇关于Docker Swarm 的文章,非常好,在这里转过来,方便日后查阅 :) 原贴链接: http://www.cnblogs.com/rio2607/p/4445968.htm ...

  3. poj 1010

    http://poj.org/problem?id=1010 题意:给你n种邮票的价值,到0结束,这些邮票价值有可能相同,但是形状是不同的. 还有给你m个收藏家所需要收藏的邮票的总价格.到0结束. 每 ...

  4. Linux之绝处逢生------SysRq

    参考: http://www.linuxfly.org/post/545/ http://www.jb51.net/article/13525.htm 做法: 未雨绸缪 # " > / ...

  5. CentOS卸载OpenJDK并安装Sun JDK

    第一步:查看Linux自带的JDK是否已安装 (卸载centOS已安装的1.4) 安装好的CentOS会自带OpenJdk,用命令 java -version ,会有下面的信息: java versi ...

  6. c++ 文件utf-8格式

    #include <stdio.h> int i = 0; while (i < 20) {    i++;    WriteLog("d:\\log.txt", ...

  7. Windows下安装Scala

    Scala是一种类似Java的纯面向对象的函数式编程语言,由于函数具有明确的确定输入对确定输出的关系,所以适合推理和计算,一切函数都可以看成一系列的计算组成,另外由于Scala函数是没有副作用和透明的 ...

  8. ABAP 数值类型转换

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'       EXPORTING         input  = wa_zz-werks       IMPOR ...

  9. 解决 spring mvc 3.0 结合 hibernate3.2 使用<tx:annotation-driven>声明式事务无法提交的问题(转载)

    1.问题复现 spring 3.0 + hibernate 3.2 spring mvc使用注解方式:service使用@service注解 事务使用@Transactional 事务配置使用 < ...

  10. 在SpringMVC中获取request对象

    1.注解法 @Autowired private  HttpServletRequest request; 2. 在web.xml中配置一个监听 <listener> <listen ...