1
|email addressList|
email:= '<abc@gmail.com>,abcd ,<abcef@domail.com>'.
addressList:= MailAddressParser addressesIn:email.

上面的代码将为我提供一个包含所有字符串的有序集合,尽管“abcd”不是有效的电子邮件 ID,但它仍然存在于集合中。

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

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

2 回答 2

3

您可以使用

addressList select: [ :email | email includes: $@ ]

如果您只是在寻找一个字符@(如@dh82 所建议的那样),或者如果您需要寻找可以使用的子字符串:

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

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

于 2013-01-20T20:43:38.897 回答
3

您可以采取几种方法:

完全按照您的要求执行(从现有集合中删除)

addressList removeAllSuchThat: [:string| (string includes: $@) not ]

或者,您可以生成一个新列表,其中仅包含 Uko 提议的有效元素。在这里,您将 addressList 与新列表交换。

addressList select: [:string| string includes: $@ ]

或者您可以生成一个排除无效元素的新列表

addressList reject: [:string| (string includes: $@) not ]
于 2013-01-21T07:40:54.300 回答