我对如何分割我的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);
答案 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("."))
字符串,请注意首先检查该字符串是否包含在使用此之前点...)。