> http:// domain name.anything / anypath
> https:// dmain name.anything / anypath
> http://www.domain name.anything / anypath
> https://www.dmain name.anything / anypath
这些字符串保存在CSV文件中.我需要解析每个URL才能获得域名,域名.一切.即第一个之后的部分.在第一个/之前.
我使用split方法分隔字符串,然后将每个字符串转换为URL,然后使用toAuthority函数仅获取域名.问题在于,对于我来说,机构和主持人都做同样的工作,它们包括www.我不想要的.虽然,在Oracle的tutorial中,似乎toAuthority应该返回没有www的域名.
如何在没有www的情况下提取域名部分.的URL?
解决方法
What is the difference between the getHost and getAuthority methods in the URL class?
要真正理解这一点,你应该阅读URI specification – RFC 2396.
简短的回答是权限组件由主机组件以及可选的端口号,用户名和密码组成……取决于所使用的URL方案.
How can I extract the domain name part only without the “www.” of the URL ??
你调用getHost(),测试它是否以字符串“www”开头.如果它,你删除它.
但在你开始做这样的事情之前,你需要了解删除“www.”可能会为您提供一个不起作用的URL,或者解析为与原始URL解析到的文档或服务不同的文档或服务.无偿收集URL是一个坏主意……除非您详细了解有关网站的组织方式.
“foo.com”和“www.foo.com”是同一个地方的惯例只是一个惯例,很多网站都没有实现它.删除“www.”这将是一个坏主意,因为它可能会将可解析的URL转换为无法解析的URL.