`

如何将一个http link转化成href(java)

阅读更多

public static String extractHyperlink(String desc) {
if (desc == null) {
return null;
}
// if there are bullet points we enforce a lower limit and just allow one line of <li/>
int pos = desc.indexOf("http://");
if (pos == -1 || (pos > 0 && (desc.charAt(pos - 1) == '"' || desc.charAt(pos - 1) == '>'))) {
// we can't count the already extracted link
return desc;
} else {
String next = desc.substring(pos);
int end1 = next.indexOf(" ");
int end2 = next.indexOf("\n");
int end = next.length();
if (end1 != -1)
end = Math.min(end, end1);
if (end2 != -1)
end = Math.min(end, end2);
// this is a situation where the link is ended with a punctuation
// so we have to remove all non-letters at the end
while (true) {
char c = next.charAt(end - 1);
// '/' to '9', then 'A' to 'Z', then 'a' to 'z'
if (c > 'z' || c < '/' || (c > 'Z' && c < 'a') || (c > '9' && c < 'A')) {
end--;
} else {
break;
}
}
if (end == next.length()) {
String url = next.substring(0);
desc = desc.substring(0, pos) + "<a href=\"" + url + "\" target=\"_blank\">" + url + "</a>";
} else {
String url = next.substring(0, end);
desc = desc.substring(0, pos) + "<a href=\"" + url + "\" target=\"_blank\">" + url + "</a>" + extractHyperlink(next.substring(end));
}
return desc;
}

分享到:
评论

相关推荐

    Java html代码解析

    1. **解析HTML**:Jsoup可以将HTML字符串转化为一个可操作的Document对象,这个对象与DOM树类似,可以层级化地表示HTML结构。例如: ```java String html = "&lt;html&gt;&lt;head&gt;&lt;title&gt;Test&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;Hello,...

    网络机器人Java编程指南.rar

    为了防止无限循环或者重复抓取同一个页面,我们可以使用队列(如`java.util.concurrent.LinkedBlockingQueue`)存储待抓取的URL,并使用集合(如`HashSet`)记录已访问的URL。 此外,为了避免对目标网站造成过大的...

    ztree+java动态树加载实例

    在这个“ztree+java动态树加载实例”中,我们将深入探讨如何结合Java后端与ZTree前端库来创建一个动态的树形数据加载示例。 ZTree的核心功能是将复杂的数据结构转化为易于理解的树状视图。它支持多种交互方式,如...

    将jsp转化为静态的html文件输出

    &lt;LINK href="../css.css" rel=stylesheet type=text/css&gt; &lt;td align="center"&gt;###title### 作者: ###author### &lt;td&gt;###content### ``` 模板文件中包含了一些占位符(例如 `###title###`)...

    java抓包程序jsoup实例

    Java抓包程序是一个用于捕获和分析网络数据流的工具,通常用于开发、调试和测试网络应用程序。在本例中,我们关注的是使用Jsoup库进行网页数据抓取的实践应用。Jsoup是一个非常强大的Java库,它允许开发者解析HTML...

    常见java前端面试题及Java面试问题集

    - **同步**:同步操作是指执行顺序按照代码的先后顺序进行,前一个任务未完成前,下一个任务无法开始。这种模式适用于简单、快速的任务。 - **异步**:异步操作则允许在等待某个操作完成的同时执行其他任务,通常...

    jsoup java解析html

    JSoup能够解析来自网络或本地文件系统的HTML文档,将其转化为一个可操作的`org.jsoup.nodes.Document`对象。这个对象就像一个完整的DOM树,你可以通过这个树来遍历和修改HTML结构。 ```java import org.jsoup.Jsoup...

    Java实现文档在线阅读.docx

    本文将详细介绍如何使用 Java 平台将 `.doc` 或 `.docx` 文件转化为 `.pdf` 格式,然后进一步转化为 `.swf` 文件,并最终通过 FlexPaper 组件展示这些文件。 #### 二、关键技术栈 1. **OpenOffice**: 用于将 `.doc...

    jsoup.rar 用java实现jquery

    它能够将HTML字符串转换为一个`Document`对象,这个对象就像是DOM树的Java表示。你可以通过CSS选择器来查找和操作页面元素,这与jQuery非常相似,极大地简化了对HTML文档的操作。 ```java // 加载HTML字符串 String...

    动态改变网页中的链接信息

    例如,以下代码演示了如何使用JavaScript动态改变一个链接的URL: ```javascript // 获取HTML中的链接元素 var link = document.getElementById('myLink'); // 修改链接的href属性 link.href = '...

    JsoupDemo可运行的完整工程

    JsoupDemo是一个基于Java的项目,它利用Jsoup库来实现网页内容的抓取和解析。Jsoup是一款强大的、易于使用的库,专门用于处理实际世界中的HTML,帮助开发者提取和操作数据。在本项目中,我们将深入探讨Jsoup的主要...

    Jsoup操作解析Html文件

    它可以将HTML字符串转化为一个Document对象,这个对象就像是HTML文档的树形结构,包含了所有的元素、属性和文本。通过这个Document对象,我们可以方便地遍历HTML文档的各个部分,如查找特定的元素,或者获取文档的...

    jsoup中文API

    Jsoup 提供了 `Jsoup.parse(String html)` 方法来解析 HTML 字符串,并将其转化为一个 `Document` 对象。这个对象代表了一个完整的 HTML 或 XML 文档,可以被遍历和操作。例如,以下代码展示了如何解析一个简单的 ...

    jsoup-1.8.1.jar

    - **清洗HTML**:jsoup包含了一个强大的HTML清理器,可以将任意HTML转化为规范格式,消除潜在的安全隐患,比如XSS攻击。 **2. 使用场景:** - **Web抓取**:通过jsoup,开发者可以编写程序来爬取网站上的特定信息,...

    在jsp页面中的日期选择框

    在JSP(Java Server Pages)页面中,日期选择框是一个常用的用户界面元素,它允许用户以图形化的方式选择日期。这种交互方式对于处理与日期相关的数据输入非常方便,例如在预订系统、日程安排或者记录生日等场景。在...

    tools.rar_Java__Java_

    它能够将HTML源代码转化为一个可操作的Document对象,这个对象类似于DOM(文档对象模型),允许开发者通过标准的DOM API或者CSS选择器来访问和操作HTML元素。例如,你可以轻松地找到页面上的某个特定标签,如`...

    jsoup攫取你所需的信息

    jsoup的核心功能是对HTML文档进行解析,将其转化为一个可操作的DOM(文档对象模型)。通过DOM,你可以像遍历任何Java对象一样遍历HTML元素。例如,可以使用`select()`方法来选取元素,就像CSS选择器一样,这使得查找...

    在TextView中添加超链接

    另外,还可以通过创建自定义XML标签,扩展TextView的功能,比如创建一个`&lt;hyperlink&gt;`标签,然后在解析布局时将其转换为可点击的链接。 每种方法都有其适用场景,开发者应根据实际需求选择最合适的方法。在处理...

    javaweb乱码

    2. **使用过滤器**:为了避免在每个页面都需要手动设置编码,可以创建一个`Filter`类,如`SetCodeFilter`,在过滤器中统一设置请求编码。在`web.xml`中配置这个过滤器,让它应用于所有`.jsp`和`.do`请求,从而简化...

Global site tag (gtag.js) - Google Analytics