Java 如何检测字符串中URL的存在
我有一个输入String说Please go to http://stackoverflow.com
。<a href=""></a>
许多浏览器/ IDE /应用程序都会检测到字符串的url部分,并自动添加锚点。这样就变成了Please go to <a href='http://stackoverflow.com'>http://stackoverflow.com</a>
。
我需要使用Java进行相同的操作。
回答:
为此使用java.net.URL!
嘿,为什么不对这个“ java.net.URL”使用Java的核心类,而让它验证URL。
尽管以下代码违反了“仅在特殊情况下使用异常”这一黄金原则,但对Java平台上已经成熟的某些东西而言,尝试重新发明轮子却无济于事。
这是代码:
import java.net.URL;import java.net.MalformedURLException;
// Replaces URLs with html hrefs codes
public class URLInString {
public static void main(String[] args) {
String s = args[0];
// separate input by spaces ( URLs don't have spaces )
String [] parts = s.split("\\s+");
// Attempt to convert each item into an URL.
for( String item : parts ) try {
URL url = new URL(item);
// If possible then replace with anchor...
System.out.print("<a href=\"" + url + "\">"+ url + "</a> " );
} catch (MalformedURLException e) {
// If there was an URL that was not it!...
System.out.print( item + " " );
}
System.out.println();
}
}
使用以下输入:
"Please go to http://stackoverflow.com and then mailto:oscarreyes@wordpress.com to download a file from ftp://user:pass@someserver/someFile.txt"
产生以下输出:
Please go to <a href="http://stackoverflow.com">http://stackoverflow.com</a> and then <a href="mailto:oscarreyes@wordpress.com">mailto:oscarreyes@wordpress.com</a> to download a file from <a href="ftp://user:pass@someserver/someFile.txt">ftp://user:pass@someserver/someFile.txt</a>
当然,可以以不同的方式处理不同的协议。你可以使用URL类的getter获取所有信息,例如
url.getProtocol();
以上是 Java 如何检测字符串中URL的存在 的全部内容, 来源链接: utcz.com/qa/425276.html