Get domain from strange yet valid url with java

Viewed 1109

I need to get host from this url

android-app://com.google.android.googlequicksearchbox?Pub_id={siteID} 

java.net.URL and java.net.URI can't handle it.

3 Answers

The problem is in { and } characters which are not valid for URI. Looks like a placeholder that wasn't resolved correctly when creating a URI.

You can use String.replaceAll() to get rid of these two characters:

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

You can try the following code

String url = "android-app://com.google.android.googlequicksearchbox?Pub_id={siteID}";
        url = url.replace("{", "").replace("}","");
        URI u;
        try {
            u = new URI(url);
            System.out.println(u.getHost());
        } catch (URISyntaxException e) {
            e.printStackTrace();
        }
Related