1

を使用してメールをデータベースに保存しています InternetAddress.toUnicodeString()

それは私にそのような文字列を与えます:"John Doe" <doe@john.com>

質問:文字列を元に戻すために、どのようにその文字列を解析できInternetAddressますか?

ありがとうございました

4

4 に答える 4

3

javadoc によると、InternetAddress.toUnicodeString() メソッドは、Unicode 文字としてデコードされた RFC 822 準拠の電子メール アドレスを提供することになっています。しかし、「John Doe」は RFC 822 準拠の電子メール アドレスではありません。これは、そもそもこれらの InternetAddress オブジェクトを作成しているものに問題があることを示しています。

確かに、文字列「John Doe」を「解析」して有効な電子メール アドレスを抽出する方法はありません。情報は単に抽出するためにそこにあるわけではありません。おそらく、ローカルのアドレス帳データベースでルックアップを行うことができます。


更新-

"John Doe" <doe@john.com>InternetAddress に変換する方法は、InternetAddress(String)コンストラクタ ( javadoc ) を使用することです。これにより、入力文字列が自動的に解析されます。

于 2012-04-12T07:24:21.743 に答える
0

不可能だと思います。むしろ、電子メールアドレスをデータベースに完全な長さで保存するか、電子メールアドレスのIDを保存するかを選択する必要があります(電子メールアドレス用に別のテーブルが必要です)。

InternetAddressオブジェクトが有効であることを確認してください。それが実際に正しいかどうかを確認するために、その上でvalidate()を呼び出してみてください。

于 2012-04-12T07:15:01.427 に答える
0

あなたの場合、 new InternetAddress(emailAddress,personalName) メソッドを使用できます。

于 2019-07-30T19:25:02.087 に答える
-1

うーん...おそらくStringパラメーターを受け取るコンストラクターを使用することによって?Javadoc APIの使用方法を学んでください。ここで質問するよりも、はるかに速く答えを見つけることができます。

于 2012-04-12T07:16:50.907 に答える