我有java.net.URI类型的对象,我想将它转换为String表示,但我只对以下组件感兴趣:
我不想有任何其他元素,如查询、片段、用户信息或方案。
做手工的getHost(),getPort()并且getPath()看起来像一个脆弱的解决方案。是否有任何URI格式化程序或自定义toString可用?
这里的脆弱我的意思是可能有一些我可能忘记手动处理的极端情况。就像主机是 IPv6 地址的情况一样,然后它需要有括号。
您可以相当轻松地构建一个新的 URI:
URI partial = new URI(
null, // scheme
null, // user info
uri.getHost(),
uri.getPort(),
uri.getPath(),
null, // query
null); // fragment
String text = partial.toString();
Run Code Online (Sandbox Code Playgroud)
您可能想要验证主机是否为非空,以便使其合理。
或者,串联方法真的不太可能更复杂 - 我假设您将进行单元测试以检查所有组合,无论实现方式如何。
| 归档时间: |
|
| 查看次数: |
1917 次 |
| 最近记录: |