Добавьте http://www. в тексте если не существует

Как я могу узнать, что какой-то текст содержит "http://www." Я хочу показать домен в веб-представлении. Доменное имя записывается в TextView, но нет никаких ограничений для добавления префикса. Если пользователь не ввел его, я должен добавить и отобразить URL в веб-просмотре.

6 ответов

Решение

Вы можете сделать это

String url = textView.getText().toString();
if(!url.startsWith("www.")&& !url.startsWith("http://")){
  url = "www."+url;
}
if(!url.startsWith("http://")){
  url = "http://"+url;
}

Вы можете использовать этот URL для отображения содержимого в WebView

Надеюсь, что это решит вашу проблему

Только что изменил ответ @silwar и добавил https:

 if(!url.startsWith("www.")&& !url.startsWith("http://") && !url.startsWith("https://")){
        url = "www."+url;
    }
    if(!url.startsWith("http://") && !url.startsWith("https://")){
        url = "http://"+url;
    }

Наиболее эффективный способ проверки того, что доменное имя правильно сформировано и содержит (или нет) префикс, - использование регулярного выражения.

Проверьте Java Pattern, чтобы соответствовать регулярному выражению в Android. Оно того стоит.

По просьбе Себастьяна, регулярное выражение является хорошим вариантом. Вы также можете получить текст из представления, создать объект URI

Uri uri = Uri.create(view.getText().toString());

тогда с помощью uri.somemethod Вы сможете получить все об URL, который хотите знать. Если URI не удается создать, вы генерируете сообщения об ошибках, потому что что-то пошло не так.

Я бы просто получил текст из TextView и проанализировал его с помощью startWith(). Если это неверно, просто добавьте его к тексту и используйте setText(), чтобы переназначить его.

Вы также можете проверить наличие других выражений, таких как "www.". Так что присмотритесь к содержит ().

Попробуй это

String a = "http://";
webview.loadUrl(a + url.getText().toString());
Другие вопросы по тегам