我有一个输入字符串说 Please go to http://stackoverflow.com
。检测到字符串的 url 部分,许多浏览器/IDE/应用程序会自动添加一个锚点 <a href=""></a>
。所以它变成了 Please go to <a href='http://stackoverflow.com'>http://stackoverflow.com</a>
。
我需要使用 Java 做同样的事情。
原文由 Rakesh N 发布,翻译遵循 CC BY-SA 4.0 许可协议
为此使用 java.net.URL!
嘿,为什么不为这个“java.net.URL”使用java中的核心类并让它验证URL。
虽然下面的代码违反了“仅在特殊情况下使用异常”的黄金原则,但对我来说,尝试为 Java 平台上非常成熟的东西重新发明轮子是没有意义的。
这是代码:
使用以下输入:
产生以下输出:
当然,可以用不同的方式处理不同的协议。您可以使用 URL 类的获取器获取所有信息,例如
或其余属性:spec、port、file、query、ref 等
http://java.sun.com/javase/6/docs/api/java/net/URL.html
处理所有协议(至少 java 平台知道的所有协议),作为一个额外的好处,如果有任何 java 当前无法识别的 URL 并最终被合并到 URL 类中(通过库更新),你会得到它透明!