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;
}