编写函数parseUrl,将url解析成各个域打印出来

url一般格式为:
protocol://[user[:password]@](domain_name|ip)[:port][/[path]]
例如:
ftp://test:000@192.168.0.229:1023/test/data/data.xml
http://localhost:8080/giantstone/index.jsp
请编写函数parseUrl,将url解析成各个域打印出来:
public static void parseUrl(String url)
注:要求用String类的方法实现,不得采用正则表达式

 

 1 package test.string;
 2 /*
 3 protocol://[user[:password]@](domain_name|ip)[:port][/[path]]
 4 ftp://test:000@192.168.0.229:1023/test/data/data.xml
 5 http://localhost:8080/giantstone/index.jsp
 6 ftp://192.168.0.1
 7 http://www.cqnu.edu.cn/index.asp
 8 */
 9 public class ParseUrl {
10     public static void parseUrl(String url){
11         int iRecord = 0;
12         int i = 0;
13         int iLast = 0;
14         for(i=0;i<url.length();i++){
15             if(':' == url.charAt(i)){
16                 if(0 == iRecord){
17                 System.out.println("protocol["+url.substring(0,i)+"]");
18                 iRecord++;
19                 iLast = i;
20                 }
21                 else if(1 == iRecord){
22                     System.out.println("usr["+url.substring(iLast+3,i)+"]");
23                     iLast = i;
24                     iRecord++;
25                 }
26                 else if(2 == iRecord){
27                     System.out.println("domain_name["+url.substring(iLast+1,i)+"]");
28                     iLast = i;
29                     iRecord++;
30                 }
31             }
32             else if('/' == url.charAt(i)){
33                 if(('/' != url.charAt(i-1)) && ('/' != url.charAt(i+1))){
34                     if(iRecord > 1){//如果存在usr或者port
35                         System.out.println("port["+url.substring(iLast+1,i)+"]");
36                     }
37                     else{
38                         System.out.println("port[]");
39                     }
40                     System.out.println("path["+url.substring(i)+"]");
41                     break;
42                 }
43             }
44             else if('@' == url.charAt(i)){
45                 System.out.println("password["+url.substring(iLast+1,i)+"]");
46                 iLast = i;
47             }
48         }
49         }
50     
51     public static void main(String[] args){
52         String url1 = "ftp://test:000@192.168.0.229:1023/test/data/data.xml";
53         //String url2 = "http://localhost:8080/giantstone/index.jsp";
54         //String url3 = "ftp://192.168.0.1";
55         //String url4 = "http://www.cqnu.edu.cn/index.asp";
56         parseUrl(url1);
57         //parseUrl(url2);
58         //parseUrl(url3);
59         //parseUrl(url4);
60         }
61     }

 

posted @ 2013-01-26 12:04  追梦de人  阅读(329)  评论(0编辑  收藏  举报