URL が与えられた場合、ドメイン名を抽出することは、Web 開発およびデータ処理における一般的なタスクです。ただし、URL 構文の複雑さと潜在的なエッジ ケースにより、これは困難な場合があります。
この説明では、URL からドメイン名を抽出し、潜在的な落とし穴やエッジ ケースに対処する Java ソリューションを提供します。
提供されたソリューションは、URL の解析に java.net.URL の代わりに java.net.URI を使用します。
<code class="java">public static String getDomainName(String url) throws URISyntaxException { URI uri = new URI(url); String domain = uri.getHost(); return domain.startsWith("www.") ? domain.substring(4) : domain; }</code>
このアプローチにより、java.net に関するいくつかの問題が回避されます。 .URL (サービス拒否攻撃に対する脆弱性や相対 URL のサポートの欠如など)。
元のソリューションは、次のようないくつかのエッジ ケースで失敗します。
複雑で無効な可能性のある形式の URL の場合、 RFC 3986 の付録 B に基づいた正規表現を使用できます。ただし、このアプローチはより複雑で、すべてのエッジ ケースを正しく処理できない可能性があります。
URL からドメイン名を抽出するには注意が必要ですURL 構文と潜在的なエッジケースを考慮します。提供される Java ソリューションは、これらの問題の多くに対処し、信頼性の高いドメイン名の抽出を保証します。より複雑な URL または無効な入力を処理する場合は、正規表現ベースのパーサーが必要になる場合があります。
以上がJava で URL からドメイン名を確実に抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。