URI解析和代碼提取

1、URI=“http://www.java2s.com:8080/yourpath/fileName.htm?stove=10&path=32&id=4#harvic ”

  • getScheme() :獲取Uri中的scheme字符串部分,在這裏即,http
  • getSchemeSpecificPart():獲取Uri中的scheme-specific-part:部分,這裏是://www.java2s.com:8080/yourpath/fileName.htm?
  • getFragment():獲取Uri中的Fragment部分,即harvic
  • getAuthority():獲取Uri中Authority部分,即www.java2s.com:8080
  • getPath():獲取Uri中path部分,即/yourpath/fileName.htm
  • getQuery():獲取Uri中的query部分,即stove=10&path=32&id=4
  • getHost():獲取Authority中的Host字符串,即www.java2s.com
  • getPost():獲取Authority中的Port字符串,即8080

另外還有兩個常用的:getPathSegments()、getQueryParameter(String key)

  • List< String> getPathSegments():上面我們的getPath()是把path部分整個獲取下來:/yourpath/fileName.htm,getPathSegments()的作用就是依次提取出Path的各個部分的字符串,以字符串數組的形式輸出。以上面的Uri爲例:

    String mUriStr = "http://www.java2s.com:8080/yourpath/fileName.htm?stove=10&path=32&id=4#harvic";  

    Uri mUri = Uri.parse(mUriStr);  

    List<String> pathSegList = mUri.getPathSegments();  

    for (String pathItem:pathSegList){  

        Log.d("qijian","pathSegItem:"+pathItem);  

    }  

     

打出來的列表爲:

  • getQueryParameter(String key):在上面我們通過getQuery()獲取整個query字段:stove=10&path=32&id=4,getQueryParameter(String key)作用就是通過傳進去path中某個Key的字符串,返回他對應的值。

    String mUriStr = "http://www.java2s.com:8080/yourpath/fileName.htm?stove=10&path=32&id#harvic";  

    mUri = Uri.parse(mUriStr);  

    Log.d(tag,"getQueryParameter(\"stove\"):"+mUri.getQueryParameter("stove"));  

    Log.d(tag,"getQueryParameter(\"id\"):"+mUri.getQueryParameter("id"));  

     

注意注意,我稍微更改了下字符串,把query中id的值去掉了!!!!!然後看看通過getQueryParameter("id")獲取它的值會得到什麼!
結果如下:

可以看到,在path中,即使針對某一個KEY不對它賦值是允許的,但在利用getQueryParameter()獲取該KEY對應的值時,獲取到的是null;

2、如果在inter-filter看到如下參數,表明該Activity只打開文件名結尾是.file的文件

<data android:pathPattern=".*\\.file" />  

參考文章:

http://blog.csdn.net/harvic880925/article/details/44679239

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章