这几天要做一个项目,正好要用到去掉字符串里重复的字符,开始还不知道怎么写这个算法,不过通 在网上找了一些相关的资料,总算是有一个大体的思路,于是集思广议吧,总结了下面两种:
这是传入一个数组:
public static String[] RemoveDup(string[] myData)
{
if (myData.Length > 0)
{
Array.Sort(myData);//用了数组的排序,个人感觉在数组元素很多的时候能够提高一点效率吧!
int size = 1; //at least 1
for (int i = 1; i < myData.Length; i++)
if (myData[i] != myData[i - 1])
size++;
String[] myTempData = new String[size];
int j = 0;
myTempData[j++] = myData[0];
for (int i = 1; i < myData.Length; i++)
if (myData[i] != myData[i - 1])
myTempData[j++] = myData[i];
return myTempData;
}
return myData;
}
这是传入一个字符串的,和上面的没什么两样.
public static String[] RemoveDupstring(string myString)
{
String[] myData = myString.Split('#');
if (myData.Length > 0)
{
//Array.Sort(myData);
int size = 1; //at least 1
for (int i = 1; i < myData.Length; i++)
if (myData[i] != myData[i - 1])
size++;
String[] myTempData = new String[size];
int j = 0;
myTempData[j++] = myData[0];
for (int i = 1; i < myData.Length; i++)
if (myData[i] != myData[i - 1])
myTempData[j++] = myData[i];
return myTempData;
}
return myData;
}
多写点小的算法,我想自己的能力会提高得快点吧!这也是我从同事那里得到的体会!