Если у вас есть строка с URL адресом и вам нужно узнать его составляющие (например, протокол или порт), это можно сделать с помощью регулярного выражения:

Pattern pattern = Pattern.compile("((http[s]?|ftp)://)([^:^/]*)(:(\\d*))?(.*)?");

Исходный код

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexUrlElements {

    public static void main(String[] args) {
        Pattern pattern = Pattern.compile("((http[s]?|ftp)://)([^:^/]*)(:(\\d*))?(.*)?");

        Matcher matcher = pattern.matcher("http://java-lessons.ru:80/regex/");

        if (matcher.find()) {
            String protocol = matcher.group(2);
            String domain = matcher.group(3);
            String port = matcher.group(5);
            String uri = matcher.group(6);

            System.out.println("Protocol: " + protocol);
            System.out.println("Domain: " + domain);
            System.out.println("Port: " + port);
            System.out.println("URI: " + uri);
        }
    }
}

Как узнать протокол, домен, порт из URL с помощью регулярного выражения