我该如何判断一段文本中是否包含"http://www.",我想在Web视图中显示域名。域名写在TextView中,但没有添加前缀的限制。如果用户未输入,则必须添加并在webview中显示URL。
我该如何判断一段文本中是否包含"http://www.",我想在Web视图中显示域名。域名写在TextView中,但没有添加前缀的限制。如果用户未输入,则必须添加并在webview中显示URL。
你可以像这样做
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;
}
但是请记住,有时候在安卓设备上使用http://
会产生安全异常,因此我们应该使用https://
。所以为了编写风险更小的代码,我们需要像最后一个检查一样执行以下操作 -
if(!url.startsWith("http://") && !url.startsWith("https://")){
url = "https://"+url;}
检查域名是否格式正确且包含(或不包含)前缀的最有效方法是使用正则表达式。
请查看Java Pattern以在Android中匹配正则表达式。这很值得一试。
根据Sebastien的要求,正则表达式是一个很好的选择。 您还可以从视图中获取文本,创建URI对象。
Uri uri = Uri.create(view.getText().toString());
然后使用uri.somemethod,你可以获取关于url的所有信息。 如果uri创建失败,你需要生成错误消息,因为出现了问题。
试试这个
String a = "http://";
webview.loadUrl(a + url.getText().toString());
www.http://www.domain.com
这样的URL)。不管怎样,我认为作者会根据自己的需求调整代码。 - Sébastien