2011-11-05 45 views
0

好家伙我在 困难解析URL编码,例如:解析URL编码为普通字符串在java中

"http://stackoverflow.com/questions/3984422/parsing-a-list-into-a-url-string"

到:

"stackoverflow questions 3984422 parsing a list into url string"

,并在某些情况下,链接是这样显示的:

' “http://www.rgagnon.com/javadetails/java-0024.html”'

通过使用下面的代码,它显示的出来说就是:

“www.rgagnon.com javadetails的Java 0614.html”

任何建议如何增加更多过滤?

感谢您的帮助。

+0

你需要哪种类型或解析?这个例子是不够的。 – deepmax

+0

任何解析,将得到的结果转换成纯html标记的字符串 – Carlo

回答

4

如何

String url = "http://stackoverflow.com/questions/3984422/parsing-a-list-into-a-url-string"; 
String plain = url.replaceAll("[/-]|http:|\\.com", " ").trim(); 
+0

不错,但'.com'怎么样?! – deepmax

+0

谢谢,修复。 –

+0

感谢它帮助很多 但在某些情况下,链接是这样的: “http://www.rgagnon.com/javadetails/java-0614.html” 如果我使用您的编码输出是: www javadetails java 0614.html – Carlo

1

另一种选择:

import java.net.*; 

public class GetURLName 
{ 
    public static void main(String args[]) { 
    try{ 
     String urlAddress = "http://stackoverflow.com/questions/3984422/parsing-a-list-into-a-url-string"; 
     URL url = new URL(urlAddress); 
     System.out.print(url.getHost().replaceAll("[/.]|http:|www|com", " ").trim()+" "); 
     System.out.println(url.getPath().replaceAll("[/.-]|html", " ").trim()); 
     } 
    catch (Exception e){ 
     System.out.println("Exception caught ="+e.getMessage()); 
    } 

} }

会给你这个输出

计算器问题3984422解析列表为URL字符串

+0

感谢它帮助很多url的代码那样 – Carlo

+0

感谢它帮助很多 但在某些情况下,url代码显示为: “[http://rgagnon.com/javadetails/java-0614。 HTML] “ 使用您的代码的输出是 ”WWW javadetails的Java 0614.html“ 任何建议 感谢帮助 ” – Carlo

+0

http://rgagnon.com/java details/java-0614.html会变成rgagnon javadetails java 0614.html,你想要它的输出是什么? – Daniel