using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string str1 = "'******11151148','******11153952','******11155667','******11155752','******11155757'"; string str2 = "'******11151148','******11153952','******11154294'"; //过滤在第一个字符串中在第二个字符串中出现过的数据 string strAfterFliter = FliterString(str1, str2, ','); //过滤字符串中重复出现的(字串) string str = FliterString("1;3;4;5;1;c;s;y;a;c", ';'); } #region 字符串的过滤 /// <summary> /// 字符串过滤 /// </summary> /// <param name="str1">待过滤的字符串</param> /// <param name="str2">要过滤掉的数据</param> /// <param name="c">字符串的分隔符</param> /// <returns>过滤后的字符串</returns> public static string FliterString(string str1, string str2,char c) { string[] arrStr1 = str1.Split(c); string[] arrStr2 = str2.Split(c); for (int i = 0; i < arrStr1.Length; i++) { for (int j = 0; j < arrStr2.Length; j++) { if (arrStr1[i].Trim().ToString() == arrStr2[j].Trim().ToString()) { arrStr1[i] = ""; } } } StringBuilder sbStr = new StringBuilder(); //将过滤后的字符串数据重新组合成字符串 for (int i = 0; i < arrStr1.Length; i++) { if (arrStr1[i] != "") { sbStr.Append(arrStr1[i]).Append(c.ToString()); } } return sbStr.ToString(); } #endregion #region 过滤字符串中出现的重复值(有分隔符分割分割后重复的“子字符串”) /// <summary> /// 过滤字符串中重复数据 /// </summary> /// <param name="str">带过滤的字符串</param> /// <returns>过滤后的字符串</returns> public static string FliterString(string str,char c) { string[] strArr = str.Split(c); //排序时必须的,比对的是相邻的两个数据 Array.Sort(strArr); int count = 1; for (int i = 1; i < strArr.Length; i++) { if (strArr[i] != strArr[i - 1]) { count++; } } string[] arrTemp=new string[count]; int j=1; arrTemp[0] = strArr[0]; for (int i = 1; i < strArr.Length; i++) { if (strArr[i - 1] != strArr[i]) { arrTemp[j++] = strArr[i]; } } //将过滤后的字符串数据重新组合成字符串 StringBuilder sbStr = new StringBuilder(); for (int i = 0; i < arrTemp.Length; i++) { if (arrTemp[i] != "") { sbStr.Append(arrTemp[i]).Append(c); } } return sbStr.ToString(); } #endregion } }