从URL分割特定信息的arraylist?

时间:2014-09-24 15:21:08

标签: java arraylist split

我对如何分割我的arraylist感到困惑,通过列表循环,并只提取特定信息。

我有一个包含20个网址的arraylist:
http://xxxx.websitename.com:1234/aaa/bbb/ccc
http://yyyy.websitename.com:5678/aaa/bbb/ccc
等.....

我希望能够只获得结果:
xxxx 1234
yyyy 5678

如果我想将上述作为结果,我该如何开始?我可以找到如何将它作为一个字符串,但没有一个很好的例子作为数组列表。

public class HealthCheck {

public static void main(String[] args) {

ArrayList arlURL = new ArrayList();
arlURL.add("http://xxxx.websitename.com:1234/aaa/bbb/ccc");
arlURL.add("http://yyyy.websitename.com:5678/aaa/bbb/ccc");

System.out.println(arlURL);

1 个答案:

答案 0 :(得分:1)

仅使用ArrayList实现无法仅获取(子)域和端口。您只能在将它们放入ArrayList时获取条目。

使用build in URL类来解析ArrayList的URL:

    URL aURL = new URL("http://xxxx.websitename.com:1234/aaa/bbb/ccc");

    System.out.println("protocol = " + aURL.getProtocol());
    System.out.println("authority = " + aURL.getAuthority());
    System.out.println("host = " + aURL.getHost());
    System.out.println("port = " + aURL.getPort());
    System.out.println("path = " + aURL.getPath());
    System.out.println("query = " + aURL.getQuery());
    System.out.println("filename = " + aURL.getFile());
    System.out.println("ref = " + aURL.getRef());

请参阅http://docs.oracle.com/javase/tutorial/networking/urls/urlInfo.html

由于您只想要子域名,您必须在第一个点(例如,split进一步aURL.getHost() aURL.getHost().substring(0, aURL.getHost().indexOf("."))字符串,请注意首先检查该字符串是否包含在使用此之前点...)。