|email addressList|
email:= '<abc@gmail.com>,abcd ,<abcef@domail.com>'.
addressList:= MailAddressParser addressesIn:email.
上面的代码会给我一个Ordered集合,其中包含所有字符串,但'abcd'不是一个有效的电子邮件ID,它仍然存在于集合中。
我的问题是如何删除不包含“@”的无效电子邮件地址。
addressList do[:ele | " How can i check each item if it includes @ , if not remove it."]
答案 0 :(得分:3)
您可以使用
addressList select: [ :email | email includes: $@ ]
如果您只查找@
之类的字符(如@ dh82所示),或者您需要查找子字符串,则可以使用:
addressList select: [ :email | email includesSubString: '@' ]
select:
创建一个新集合,其元素与块中指定的条件匹配。
答案 1 :(得分:3)
您可以采取以下几种方法:
完全按照您的要求进行操作(从现有收藏中删除)
addressList removeAllSuchThat: [:string| (string includes: $@) not ]
或者您可以生成一个新列表,其中仅包含Uko建议的有效元素。在这里,您将地址列表与新列表交换。
addressList select: [:string| string includes: $@ ]
或者您可以生成排除无效元素的新列表
addressList reject: [:string| (string includes: $@) not ]