使用java从奇怪但有效的URL获取域名

Den*_*lot 4 java url

我需要从这个网址获取主机

android-app://com.google.android.googlequicksearchbox?Pub_id={siteID} 
Run Code Online (Sandbox Code Playgroud)

java.net.URL并且java.net.URI无法处理它.

Kar*_*cki 8

问题在于{}URI无关的字符.看起来像创建URI时未正确解析的占位符.

您可以String.replaceAll()用来摆脱这两个字符:

String value = "android-app://com.google.android.googlequicksearchbox?Pub_id={siteID}";
URI uri = URI.create(value.replaceAll("[{}]", ""));
System.out.println(uri.getHost()); // com.google.android.googlequicksearchbox
Run Code Online (Sandbox Code Playgroud)