java 中将文本中url 转成 可点击的链接



package com.kuaibao.skuaidi.texthelp;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class TextToLink {
    /**
     * URL转换为链接
     * @author 顾冬冬
     * @param urlText
     * @return String
     */
    public static String urlToLink(String urlText){
        // url的正则表达式
        String regexp  = "((http[s]{0,1}|ftp)://[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)|(www.[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)";                                     // 结束条件
        Pattern pattern = Pattern.compile(regexp, Pattern.CASE_INSENSITIVE);
        Matcher matcher = pattern.matcher(urlText);
        
        String resultText = "";// (临时变量,保存转换后的文本)
        int lastEnd = 0;// 保存每个链接最后一会的下标
        
        while(matcher.find()){
        	resultText += urlText.substring(lastEnd, matcher.start()-1);
        	resultText += "<a href=\"" + matcher.group() + "\">" + matcher.group() + "</a>";
        	lastEnd = matcher.end();
        }
        resultText += urlText.substring(lastEnd);
        return resultText;
    }
}

在这里需要说明的方法:

matcher.find()

最后,将上面返回的结果设置到文本框中,不过要注意的是下面两行代码(必须设置了才可以点击和转换哦):

tv_notice_content.setText(Html.fromHtml(TextToLink.urlToLink(带链接的文本)));//
tv_notice_content.setMovementMethod(LinkMovementMethod.getInstance());// 对这个控件设置了以后就可以点击 了


tv_notice_content.setText(Html.fromHtml("<a href=\"" + <a target=_blank href="http://www.baidu.com">http://www.baidu.com</a> + "\">" + "《点击查看》" + "</a"));

上面这行代码呢就是将“《点击查看》”用来代替前面那段链接了。


如果有什么疑问一定要给我留言哦~我不怕批评,哈哈~望不吝赐教




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值