日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 检测字符串是否为合法域名

發布時間:2024/4/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 检测字符串是否为合法域名 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.



今天,簡單講講android里如何檢測輸入的字符串為合法的域名。


這個昨天搜索了很多資料,基本沒有找到符合要求的代碼。后來,花了很多時間,才解決了問題。這里記錄一下。


一。檢查輸入域名是否合法。

具體的代碼很簡單:

public static boolean isURL2(String str){String regex = "^((https|http|ftp|rtsp|mms)?://)" + "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" //ftp的user@ + "(([0-9]{1,3}\\.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184 + "|" // 允許IP和DOMAIN(域名) + "([0-9a-z_!~*'()-]+\\.)*" // 域名- www. // + "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\\." // 二級域名 + "[a-z]{2,6})" // first level domain- .com or .museum + "(:[0-9]{1,4})?" // 端口- :80 + "((/?)|" // a slash isn't required if there is no file name + "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$"; return match( regex ,str );}


/*** @param regex* 正則表達式字符串* @param str* 要匹配的字符串* @return 如果str 符合 regex的正則表達式格式,返回true, 否則返回 false;*/private static boolean match(String regex, String str) {Pattern pattern = Pattern.compile(regex);Matcher matcher = pattern.matcher(str);return matcher.matches();}



這個基本是用正則表達式來驗證字符串是否為合法域名,也可以檢查輸入的IP是否合法,但是不保證域名是否可以訪問。網上很多檢查域名是否可以訪問的代碼,也很簡單。


二.判斷輸入的域名是否可以訪問


方法一:

import java.io.InputStream; import java.net.URL;public class Test { public static void main(String[] args) {URL url;try {url = new URL("http://www.baidu.com");InputStream in = url.openStream();System.out.println("連接可用");} catch (Exception e1) {System.out.println("連接打不開!");url = null;} } }

方法一使用java.net 下的URL類來實現,URL 是統一資源標識符的引用,一個URL實例代表著一個url的引用,然后使用了URL中的的openStream()方法。


方法二:

import java.net.HttpURLConnection; import java.net.URL;/** * 文件名稱為:URLAvailability.java * 文件功能簡述: 描述一個URL地址是否有效 * @author Jason * @time 2010-9-14 * */ public class URLAvailability { private static URL url; private static HttpURLConnection con; private static int state = -1;/*** 功能:檢測當前URL是否可連接或是否有效,* 描述:最多連接網絡 5 次, 如果 5 次都不成功,視為該地址不可用* @param urlStr 指定URL網絡地址* @return URL*/ public synchronized URL isConnect(String urlStr) {int counts = 0;if (urlStr == null || urlStr.length() <= 0) { return null; }while (counts < 5) {try {url = new URL(urlStr);con = (HttpURLConnection) url.openConnection();state = con.getResponseCode();System.out.println(counts +"= "+state);if (state == 200) {System.out.println("URL可用!");}break;}catch (Exception ex) {counts++; System.out.println("URL不可用,連接第 "+counts+" 次");urlStr = null;continue;}}return url; } public static void main(String[] args) {URLAvailability u=new URLAvailability();u.isConnect("http://www.baidu.com"); } }


方法二使用了java.net 下的URL和HttpURLConnection兩個類來實現。它使用了HttpURLConnection 中的 getResponseCode();方法,HttpURLConnection : 通常一個HttpURLConnection 的實例可以生成一個請求,它有個方法getResponseCode();可以得到請求的響應狀態,該方法返回一個 int 分別是 200 and 404 如無法從響應中識別任何代碼則返回 -1。


android 檢測字符串是否為合法域名就講完了。


就這么簡單。

 與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的android 检测字符串是否为合法域名的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。