2013-01-20 53 views
1
|email addressList| 
email:= '<[email protected]>,abcd ,<[email protected]>'. 
addressList:= MailAddressParser addressesIn:email. 

上面的代码将得到一个Ordered集合,它将包含所有的字符串,尽管'abcd'不是一个有效的电子邮件ID,它仍然存在于集合中。测试一个订购集合

我的问题是如何删除不包含'@'的无效电子邮件地址。

addressList do[:ele | " How can i check each item if it includes @ , if not remove it."] 
+1

你知道,abcd是一个有效的电子邮件地址的新列表?它可以引用当前机器上的用户。这只是不完全合格 –

回答

3

你可以采取几种方法:

你问过什么了(从现有的集合中删除)

addressList removeAllSuchThat: [:string| (string includes: [email protected]) not ] 

或者你可以生成一个新的列表,其中包括只喜欢有效元素Uko提出。在这里,您可以将addressList与新列表进行交换。

addressList select: [:string| string includes: [email protected] ] 

或者你可以生成排除了无效的元素

addressList reject: [:string| (string includes: [email protected]) not ] 
+0

非常感谢 – Irfan

3

您可以使用

addressList select: [ :email | email includes: [email protected] ] 

如果你正在寻找只是像@一个字符(如被@ DH82建议),或者如果你需要寻找一个子就可以使用方法:

addressList select: [ :email | email includesSubString: '@' ] 

select:创建一个新的集合,该集合与匹配的块中指定的条件的元素。

+0

感谢它的帮助。 – Irfan