2013-01-20 99 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