在Java / Android中检查字符串是否包含URL的最佳方法是什么?
在Java / Android中检查字符串是否包含URL的最佳方法是什么?最好的方法是检查字符串是否包含|。com | .net | .org | .info | .everythingelse|?还是有更好的方法来做到这一点?
该网址在Android中输入到EditText中,它可以是粘贴的网址,也可以是手动输入的网址,用户不想输入 http://...我正在开发一个URL缩短应用程序。
在Java / Android中检查字符串是否包含URL的最佳方法是什么?最好的方法是检查字符串是否包含|。com | .net | .org | .info | .everythingelse|?还是有更好的方法来做到这一点?
该网址在Android中输入到EditText中,它可以是粘贴的网址,也可以是手动输入的网址,用户不想输入 http://...我正在开发一个URL缩短应用程序。
最好的方法是使用正则表达式,如下所示:
public static final String URL_REGEX = "^((https?|ftp)://|(www|ftp)\\.)?[a-z0-9-]+(\\.[a-z0-9-]+)+([/?].*)?$";
Pattern p = Pattern.compile(URL_REGEX);
Matcher m = p.matcher("example.com");//replace with string to compare
if(m.find()) {
System.out.println("String contains URL");
}
这只需在构造函数周围进行 try catch 即可完成(无论哪种方式都是必要的)。
String inputUrl = getInput();
if (!inputUrl.contains("http://"))
inputUrl = "http://" + inputUrl;
URL url;
try {
url = new URL(inputUrl);
} catch (MalformedURLException e) {
Log.v("myApp", "bad url entered");
}
if (url == null)
userEnteredBadUrl();
else
continue();