1
|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."]
4

2 に答える 2

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 に答える
3

使用できます

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

(@ dh82によって提案されたように)のような1文字だけを探している@場合、または使用できる部分文字列を探す必要がある場合:

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

select:ブロックで指定された条件に一致する要素を持つ新しいコレクションを作成します。

于 2013-01-20T20:43:38.897 に答える