URL からのドメイン名の抽出
URL からドメイン名を抽出するタスクは頻繁に発生します。この記事では、このタスクの一般的な Java 実装について説明し、精度を向上させ、潜在的なエッジ ケースに対処するための代替アプローチを検討します。
初期実装
提供された Java コードは正規化することから始まります。必要に応じて、URL の前に「http://」を追加します。次に、java.net.URL を使用して URL を解析し、ホスト文字列を取得します。最後に、ホストが「www」で始まる場合は、「www」の後の部分文字列です。はドメイン名として返されます。
代替アプローチ
ただし、このアプローチには制限があります。
実装の改善
これらの問題に対処するには、java.net.URI を使用することをお勧めします。 URL の解析。 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>
このコードは、URL を URI に変換し、ホスト文字列を取得し、「www.」を削除します。
追加の考慮事項
実装が改善されたとしても、注意すべきいくつかのエッジケースが依然として存在する可能性があります。 RFC 3986 付録 B では、より複雑な URI 解析シナリオを処理できる正規表現が提供されています。
エッジ ケース
次に、初期実装が失敗する可能性がある追加のエッジ ケースをいくつか示します。処理対象:
全体として、URL 解析に java.net.URI を使用すると、特に複雑なドメイン名や潜在的なドメイン名を扱う場合に、URL からドメイン名を抽出するためのより包括的かつ正確な方法が提供されます。無効な URL。
以上がJava で URL からドメイン名を正確に抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。