How to get URL from String on Android

后端 未结 3 1137
野的像风
野的像风 2021-01-07 12:37

I\'d like to extract URL from hi there this is a URL String http://mytest.com.

I tried to use EditText.getURLs but it didn\'t work for me.



        
相关标签:
3条回答
  • 2021-01-07 13:12

    Here is the function:

    //Pull all links from the body for easy retrieval
    private ArrayList pullLinks(String text) {
       ArrayList links = new ArrayList();
    
       String regex = "\\(?\\b(http://|www[.])[-A-Za-z0-9+&@#/%?=~_()|!:,.;]*[-A-Za-z0-9+&@#/%=~_()|]";
       Pattern p = Pattern.compile(regex);
       Matcher m = p.matcher(text);
       while(m.find()) {
          String urlStr = m.group();
          if (urlStr.startsWith("(") && urlStr.endsWith(")")) {
             urlStr = urlStr.substring(1, urlStr.length() - 1);
          }
          links.add(urlStr);
       }
       return links;
    }
    
    0 讨论(0)
  • 2021-01-07 13:24

    change input type of your EditText ---- android:inputType="textUri"

    and get your url using --- String url=edittext.getText().toString();

    0 讨论(0)
  • 2021-01-07 13:32

    Check this library: (https://github.com/robinst/autolink-java)

      compile "org.nibor.autolink:autolink:0.7.0"
    

    Working fine with Android.

    Example:

      LinkExtractor linkExtractor = LinkExtractor.builder()
                        .linkTypes(EnumSet.of(LinkType.URL))
                        .build();
                Iterable<LinkSpan> links = linkExtractor.extractLinks(String_with_Link");
                LinkSpan link = links.iterator().next();
                link.getType();        // LinkType.URL
                link.getBeginIndex();  // 17
                link.getEndIndex();    // 32
                final_Url = String_with_Link.substring(link.getBeginIndex(), link.getEndIndex()); 
    
    0 讨论(0)
提交回复
热议问题