文字列からドメイン名を抽出する最良の方法は何ですか?
例えば。xyz.com/path1/path2/path3/somefile.txt
プロトコルがないので使えませんjava.net.URL
。
私が考えることができる唯一のオプションは、最初のスラッシュまで読むことです。
その文字列にプレフィックスhttp://
を付けてオブジェクトを構築し、メソッドURL
を使用してホスト名を抽出するだけです。getHost()
String urlString = "xyz.com/path1/path2/path3/somefile.txt";
URL url = new URL("https://" + urlString);
System.out.println(url.getHost());
余分なスラッシュを追加するための http:// が存在しないと仮定すると、次のようにすることができます。
String domain = urlString.substring(0, urlString.indexOf("/"));
これにより、最初のスラッシュまでの部分文字列が得られます。
編集:指摘されているように、スラッシュがない場合、これは失敗します。次のように修正できます。
int index = urlString.indexOf("/");
if(index >= 0) String domain = urlString.substring(0, index);
ただし、入力にスラッシュがない場合は、Quoi のソリューションを使用した方がよいでしょう。
String#split
regx - ' /
'で使用できます
String[] split = str.split("/");
System.out.println(split[0]);