如何更快的删除String中的空格[未完]

本文详细介绍了五种在.NET环境下去除字符串中所有空格的高效方法,包括使用Split和Join、Linq、正则表达式、字符数组以及String的Replace方法,并提及了每种方法的优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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

相关网址:

转载于:https://www.cnblogs.com/huaxia283611/p/trimstringspacefaster.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值