Метод валидации

231
30 июля 2017, 08:00

На вход подаётся адрес, к примеру http://robota245.com Надо проверить его на валидность. Адрес должен начинаться с названия протокола, допустимые - http:// или https:// www не обязательно доменная зона должна разделяться точкой, допустимые - com, org, net другие точки в названии адреса а так же спецсимволы не допускаются. Надо реализовать без использования регулярных выражений, только при помощи стандартных возможностей класса String. И я застопорился в самом начале, помогите разобраться. Не могу сообразить как проверить на начало http:// или https://, пытаюсь перевести в массив char чтобы проверить по символьно, а оно не получается...

public static void main(String[] args) {
}
public static boolean validate(String address){
    if (address == null){
        return false;
    }
    if (address.isEmpty()){
        return false;
    }
    char[] chars = address.toCharArray();
    for (int i = 0; i < chars.length; i++) {
        if (chars[0] == 'h' && chars[1] == 't' && chars[2] == 't' && chars[3] == 'p'){
            if (chars[4] == ':' && chars[5] == '/' && chars[6] == '/'){
            }
        }
    }
    return true;
}
Answer 1
    if (address.startsWith("http://") || address.startsWith("https://")) {
    }

Советую изучить все методы класса String https://docs.oracle.com/javase/8/docs/api/java/lang/String.html

Answer 2

Не стоит заморачиваться с регулярными выражениями и проверками строк для валидации URL - используйте для этого специальный класс java.net.URL:

URL url = new URL("http://...");

В случае, если адрес невалидный - будет выброшено исключение, которое можно обработать. Для того, чтобы проверить протокол, нужно сравнить значение url.getProtocol() с http и https.

READ ALSO
Ошибка подключения MediaBrowserCompat

Ошибка подключения MediaBrowserCompat

MediaBrowserCompat вылетает с ошибкой:

282
Как получить ID3 в правильной кодировке?

Как получить ID3 в правильной кодировке?

Использую MediaMetadataRetriever для получение тегов, но русские теги иногда в ISO-8859-1, что при переводе в Windows-1251 должны читаться, однако у меня такого...

246
Как использовать опции --hash-modules и --module-path при работе с jar-утилитой в Java 9?

Как использовать опции --hash-modules и --module-path при работе с jar-утилитой в Java 9?

Я хотел бы добавить хеш-информацию к моим модулям, которые находятсяв в jar-файлахДля этого я воспользовался опциями --hash-modules и --module-path jar утилиты

200