gpt4 book ai didi

java - 将 URI 转换为仅包含主机、端口和路径的字符串

转载 作者:行者123 更新时间:2023-11-30 06:56:08 27 4
gpt4 key购买 nike

我有 java.net.URI 的对象类型,我想将其转换为 String 表示形式,但我只对以下组件感兴趣:

  • 主持人
  • 港口
  • 路径

我不想有任何其他元素,如查询、片段、用户信息或方案。

通过 getHost()getPort()getPath() 手动完成看起来是一个脆弱的解决方案。是否有可用的 URI 格式化程序或定制的 toString

这里的脆弱是指可能存在一些我可能忘记手动处理的极端情况。像例如host 是 IPv6 地址然后是 needs to have brackets 的情况.

最佳答案

您可以很容易地构建一个新的 URI:

URI partial = new URI(
null, // scheme
null, // user info
uri.getHost(),
uri.getPort(),
uri.getPath(),
null, // query
null); // fragment
String text = partial.toString();

您可能想要验证主机是否为非空,以使其合理。

或者,连接方法实际上不太可能复杂得多 - 我假设您将进行单元测试来检查所有组合,无论实现如何。

关于java - 将 URI 转换为仅包含主机、端口和路径的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34639239/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com