我在Swift 2中有字符串数组:
var myList : [String] = []
里面有动态字符串,我用*
字符myList示例来分解它们:
print(myList[0]) output = 2018-04-05*type2*namea
print(myList[1]) output = 2018-04-05*type2*nameb
print(myList[2]) output = 2018-04-05*type3*nameb
print(myList[3]) output = 2018-04-06*type3*named
我想删除myList中具有type3的对象:
IFIN相同日期AND相同名称AND具有类型2个
一定是我的琴弦那样:
print(myList[0]) output = 2018-04-05*type2*namea
print(myList[1]) output = 2018-04-05*type2*nameb
print(myList[2]) output = 2018-04-06*type3*named
必须删除以下项目:
print(myList[2]) output = 2018-04-05*type3*nameb
我想删除myList中的类型3,如果之前有类型2与相同的日期和名称基本相同。
请说明:2018-04-05*type2*nameb
和2018-04-05*type3*nameb
具有相同日期和相同名称,但2018-04-05*type3*nameb
之前具有类型2(2018年4月5日 * 类型2 * 名称b)?因此2018年4月5日 * 类型3 * 名称b行必须删除
我该怎么做呢?
2条答案
按热度按时间jq6vz3qz1#
下面的代码可以满足您的需求:
上面代码的输出为:
carvr3hs2#
我将从一个简单的(尽管是黑客式的)方法开始:
定义函数:
现在如果你做了
你得到了
也就是说,sort有左侧的字符串要删除,这些字符串与它们的等价字符串相邻并位于其右侧,所以现在您可以轻松地循环数组并删除您想要的字符串(因为您只需要将每个String的前缀与紧邻其左侧的String进行比较,以确定是否应该删除它)。
完成后,再次将
swapLastTwoComps
Map到最后一个数组上,将字符串恢复为以前的格式。