C# 移除字符串指定的字符组

C# 移除字符串指定的多组字符

调用

// 需要引一下Linq
using System.Linq;

//需要截取的字符串
string message = "值不能为 null。\r\n参数名: 对于该方法来说,参数AddIdCardInformationInfo是必要的!";
//调用方法 这里我不要字符串中的 ”。” 和 ”转义字符” 以及 ”必要”
Message(message, new string[] { "。", "\t", "\n", "\r", "必要" });

方法

        /// <summary>
        /// 移除字符串中在指定的字符 (注:不支持叠词)
        /// </summary>
        /// <param name="msg">字符串</param>
        /// <param name="str">不要的字符组</param>
        /// <returns></returns>
        string Message(string msg, string[] str)
        {
            string _outputStr = "";

            msg = msg.Trim();

            for (int i = 0; i < msg.Length; i++)
            {
                string _outStr = "";

                foreach (var item in str)
                {
                    int t = item.Length;

                    if (t == 1)
                    {
                        var txt = msg[i].ToString();

                        if (!str.Any(s => s.ToString().Contains(txt)))
                        {
                            _outStr += txt;
                        }
                    }
                    else if (t > 1)
                    {
                        if (i > (t - 2))
                        {
                            string data = "";

                            for (int j = 1; j <= t; j++)
                            {
                                data += msg[i - (t - j)].ToString();
                            }

                            var value = data.Substring(data.Length - t, 1);

                            if (!str.Any(s => s.ToString().Contains(value)))
                            {
                                if (_outStr.Length > 0 && _outStr.Substring(_outStr.Length - t, 1) != value)
                                {
                                    _outStr += value.Trim();
                                }
                            }
                        }
                    }
                }
                _outputStr += _outStr.Length > 0 ? _outStr.Substring(_outStr.Length - (str.Length - (str.Length > 1 ? 1 : 0)), 1) : "";
            }
            return _outputStr;
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值