用于从模式生成 URL 的 Java 库

2024-04-18

我想知道是否有任何免费的 Java 库可以自动执行以下过程: 1) 提供遵循特定模式的 URL,例如

http://www.asite.com/path/to/something/thischange/alsothischange-andthischangetoo

其中从上面的字符串中指定:

  • thischange是定义在 [0-10] 范围内的整数;
  • alsothischange是一个月,则在集合 {jan, ...., dec} 中;
  • andthischangetoo是定义在 [0-1000] 范围内的整数;

2) 给定一个模式,库会生成所有可能的 URL,例如

http://www.asite.com/path/to/something/0/jan-0
http://www.asite.com/path/to/something/1/jan-0
http://www.asite.com/path/to/something/2/jan-0
...

显然,我可以自己开发代码,但如果有可用的东西那就更好了。


免责声明:我是作者,但是...

你可以试试这个图书馆 https://github.com/fge/uri-template。它是 RFC 6570(URI 模板)的实现。平心而论,我应该提到的是,存在另一个实现 https://github.com/damnhandy/Handy-URI-Templates,它有一个更好的 API,但有更多的依赖项(我的仅依赖于 Guava)。

假设你有变量int1, int2, month,您的模板将是:

http://www.asite.com/path/to/something/{int1}/{month}-{int2}

使用该库,您可以执行以下操作:

// Since the lib depends on Guava, might as well use that
final List<String> months = ImmutableList.of("jan", "feb", "etc");

// Create the template
final URITemplate template 
    = new URITemplate("http://www.asite.com/path/to/something/{int1}/{month}-{int2}");

// Variable values
VariableValue int1, month, int2;

// Expansion data
Map<String, VariableValue> data;

// Build the strings
for (int i1 = 0; i1 <= 10; i1++)
    for (final String s: months)
        for (int i2 = 0; i2 <= 1000; i2++) {
            int1 = new ScalarValue(Integer.toString(i1));
            month = new ScalarValue(s);
            int2 = new ScalarValue(Integer.toString(i2));
            data = ImmutableMap.of("int1", int1, "month", month, "int2", int2);
            // Print the template
            System.out.println(template.expand(data));
        }

重要提示:.expand()方法返回一个String, not a URI or a URL。原因是,虽然 RFC 保证扩展结果,但它不能保证结果字符串实际上是 URI 或 URL。您必须自己将该字符串变成您想要的内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于从模式生成 URL 的 Java 库 的相关文章

  • 如何以编程方式找出我的 PermGen 空间使用情况?

    我正在尝试诊断java lang OutOfMemoryError PermGen Space在 Sun 的 Hotspot JVM 上运行时出现错误 并且想知道我的程序在不同时刻使用了多少 PermGen 空间 有没有办法以编程方式找出这
  • 在 Tomcat 上部署 Java Web 项目,无需 WAR 或 EAR

    我有一个 Java Web 项目 Struts Spring 在我的本地主机上完美运行 我必须将其部署在我的网站上 但虚拟主机提供的 Tomcat Manager 界面显示 由于安全原因 它无法上传 WAR 文件 当联系技术支持时 我被告知
  • JBoss AS 5 中的共享库应该放在哪里?

    我是 Jboss 新手 但我有多个 Web 应用程序 每个应用程序都使用 spring hibernate 和其他开源库和 portlet 所以基本上现在每个 war 文件都包含这些 jar 文件 如何将这些 jar 移动到一个公共位置 以
  • 使用 JAXB 编组 LocalDate

    我正在构建一系列链接类 我希望能够将其实例编组到 XML 以便我可以将它们保存到文件中并稍后再次读取它们 目前我使用以下代码作为测试用例 import javax xml bind annotation import javax xml b
  • org.postgresql.util.PSQLException:协议错误。会话设置失败

    我知道这些类型的问题已经存在 但提供的解决方案对我不起作用 在我的应用程序中 没有版本不匹配的黑白驱动程序和 PostgreSQL 服务器 我还没有找到任何其他解决方案 我正在使用 PostgreSQL 服务器 9 4 和 postgres
  • 代码编译期间遇到警告消息“使用或覆盖已弃用的 API”

    我编译了我的程序并收到以下错误 我该如何解决呢 Note ClientThreadClients java uses or overrides a deprecated API Note Recompile with Xlint depre
  • 通过 JNI 从 Applet 调用 DLL

    我有一个 概念验证 的作品 它跨越了一些不熟悉的领域 我的任务是将 EFTPOS 机器连接到在内联网浏览器中作为小程序运行的应用程序 我暂时忽略了 EFTPOS dll 并用我选择的语言 Delphi 创建了一个简单的 JNI 修饰的 DL
  • 带有面板的 Java Swing JToolbar:外观和感觉

    我有一个JToolbar其中包含多个JPanels 需要 因为我希望每个都有特定的边界 不幸的是 外观管理器无法识别JPanels属于工具栏和JButtons因此 渲染器与普通按钮一样 即没有工具栏上的特殊鼠标悬停效果 更换JPanels
  • Hystrix是否可以订阅CircuitBreaker开启事件?

    对于单元测试 我希望能够订阅 Hystrix 事件 特别是在断路器打开或关闭时发生事件 我四处寻找示例 似乎解决方法是利用指标流并监视断路器标志 由于 Hystrix 是基于 RxJava 构建的 我认为应该在某个地方有一个事件订阅接口 在
  • 如何在Gradle中支持多种语言(Java和Scala)的多个项目?

    我正在尝试将过时的 Ant 构建转换为 Gradle 该项目包含约50个Java子项目和10个Scala子项目 Java 项目仅包含 Java Scala 项目仅包含 Scala 每个项目都是由 Java 和 Scala 构建的 这大大减慢
  • JavaFx 中装饰且不可移动的舞台

    我想在 JavaFx 中创建一个装饰舞台 它也将不可移动 我正在从另一个控制器类创建这个阶段 我能够创造和展示舞台 但它是自由移动的 我怎样才能创建这个 非常感谢帮助和建议 我把打开新关卡的方法贴出来 private void addRec
  • 中间件 API 的最佳实践是什么? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我们正在开发一个中间件 SDK 采用 C 和 Java 语言 供游戏开发人员 动画软件开发人员 阿凡达开
  • Kerberos 缓存票证

    我使用的是 Windows 7 64 位 我创建了一个简单的应用程序来对实现 PrivilegedAction 的类的 run 方法中的文件进行计数 以下是我的 jaas conf 文件 CountFiles com sun securit
  • 尝试在空对象引用上调用虚拟方法“java.lang.String org.jsoup.nodes.Element.ownText()”

    我正在使用下面的代码来获取版本名称 from 应用商店通过使用 jsoup 我正在获取详细信息 但它引发了一些异常 我的代码是 public class ForceUpdateAsync extends AsyncTask
  • setKeyListener 将覆盖 setInputType 并更改键盘

    大家好 我在两个设备之间遇到问题 在实践中使用InputType和KeyListener我正在操纵一个EditText让它从数字键盘接收逗号和数字 有关更多背景信息 请检查我之前的question https stackoverflow c
  • BoneCP 和 Derby - 如何正确关闭

    I have BoneCP CONNECTION POOL CONNECTION POOL getConfig setJdbcUrl jdbc derby database shutdown true Connection connecti
  • 条件查询:按计数排序

    我正在尝试执行一个标准查询 该查询返回 stackoverflow 中回答最多的问题 例如常见问题解答 一个问题包含多个答案 我正在尝试使用标准查询返回按每个问题的答案数排序的回答最多的问题 任何人都知道我应该在 hibernate cri
  • 编译时在代码中替换Java静态最终值?

    在java中 假设我有以下内容 fileA java class A public static final int SIZE 100 然后在另一个文件中我使用这个值 fileB java import A class b Object t
  • RecyclerView 不调用 onCreateViewHolder 或 onBindView

    没有收到任何错误 所有数据似乎都有效 由于某种原因 没有调用与视图相关的方法 我已确定以下事项 getItemCount 是唯一被调用的适配器方法 并且返回一个正整数值 我知道这将是你们将要查看的区域 构造函数正在被调用 成员变量有效 Pa
  • java中的回调是什么[重复]

    这个问题在这里已经有答案了 可能的重复 什么是回调函数 https stackoverflow com questions 824234 what is a callback function 我已经阅读了回调的维基百科定义 但我仍然没有明

随机推荐

  • 如何将嵌入式 PostgreSQL Server Java 组件作为单独的服务使用?

    我正在尝试为基于 RESTful 服务 Java 的应用程序创建一个全面的集成测试套件 该应用程序在 Tomcat 7 x 中运行并依赖于 Postgresql 9 x 实例 此外 我希望能够将这个套件作为一个独立的进程运行 如果可能的话
  • 如何为 UILabel 指定日语编码?

    当我尝试在 iOS 上的 UILabel 中显示日语字符串时 它会使用中文编码而不是日语显示 这两个编码是nearly除少数特殊情况外 完全相同 例如 以下是字符 直 Unicode U 76F4 在中文 上 与日文 下 中的呈现方式 se
  • 在 Python 中设置系统日期(在 Windows 上)

    似乎有许多软件包用于获取 格式化当前日期 或查找从现在开始的 n 个时间间隔的日期 但我一定忽略了在 Python 中设置日期的简单方法 如 Windows 的 date exe 的存在 这样的功能肯定存在吗 我无法在 Google Pyt
  • 将字符串传递给 settimeout 是不好的做法吗?如果是,为什么? [复制]

    这个问题在这里已经有答案了 可能的重复 是否有充分的理由将字符串传递给 setTimeout https stackoverflow com questions 6081560 is there ever a good reason to
  • 无法获取动态导入的模块:

    我有一些延迟导入的 React 组件App tsx App tsx用于Index tsx它被渲染并附加到的地方body const IndexPage lazy gt import features IndexPage const Tags
  • 在 Playstore 中发布现成的 Kivy 应用程序之前的流程?

    我已经做了buildozer android debug并拥有 apk文件已安装并且工作正常 至少针对一个 两个设备进行了测试 这也是半默认的buildozer spec 例如 域名仍然是org test但随着应用程序的名称进行了调整 有了
  • 如何在可拖动和可放置之间划清界限?

    我正在使用优秀的 JQuery UI 进行 映射 以便用户可以 映射 来自一个计划的人员与来自另一计划的人员 使用这个简单的 JQuery document ready function div draggable draggable re
  • 如何在 iOS 上检测设备的方向?

    我有一个关于如何在 iOS 上检测设备方向的问题 我不需要接收更改通知 只需接收当前方向本身 这似乎是一个相当简单的问题 但我一直无法理解它 以下是我到目前为止所做的 UIDevice myDevice UIDevice currentDe
  • 插件 AppDomains 解决方法

    在处理自己的子目录中的插件程序集时 存在一个众所周知的问题 一旦这些程序集尝试从其子目录加载各自的依赖项 它们将无法加载 解决方案是在 AppDomains 中加载插件PrivateBinPath设置在他们的AppDomainSetup初始
  • 使用当前活动的 Google Drive 集成

    是否可以在不创建自己的 Activity 的情况下与 Google Drive 集成 而只是使用应用程序的当前 Activity 而不用 Google Drive 相关代码污染它 我有一个后台 服务 不是 Android 服务 只是一个与
  • 非 www 到 www htaccess 重定向

    我有一个 net 网址 它与前面的 www 完美配合 但是当网址只是http example net http example net它打开了一个正在建设的页面 我尝试了各种 htaccess 文件 但没有任何效果 帮助 我不是网络开发人员
  • CSS3 在动画元素上旋转导致不调用单击事件

    好吧 这个给我带来了很多问题 使用css3时 webkit transform具有任何类型 3d 旋转的样式 例如rotateY 30deg 给这个旋转的对象绑定点击事件是极其不可靠的 请参阅下面的示例代码或查看这把小提琴 http jsf
  • 序列化迁移执行顺序

    我似乎无法在任何地方找到这个问题的答案 我了解 Sequelize 迁移和播种器的工作原理 但我没有找到任何地方说明它们是否按某种特定顺序执行 因此 如果我从一个数据库开始 进行一系列迁移 然后决定从原始起点初始化一个全新的数据库 它将以完
  • 如何在Android应用程序中实现应用内计费?

    看来在Android应用程序中实现应用内计费是相当复杂的 我怎么能这样做呢 SDK 中的示例应用程序只有一个 Activity 这对于像我这样具有多个 Activity 的应用程序来说过于简化了 好吧 我会尝试解释一下我的经历 我不认为自己
  • Mac zip 压缩没有 __MACOSX 文件夹?

    当我在 Mac OSX 中使用内置 zip 压缩器压缩文件时 会导致在提取的 zip 中创建一个名为 MACOSX 的额外文件夹 我可以调整设置以防止创建此文件夹吗 或者我是否需要购买第三方压缩工具 UPDATE 我刚刚找到一个适用于 OS
  • 使用 simplexml_load_file 从 tumblr 中提取 - 每次都会超时

    我的网站加载时间约为 45 秒 这是因为我从 tumblr 中提取了一些 XML 但我无法确定这是我的服务器的错误 tumblr 的错误还是其他因素 我可以让这个脚本在 5 秒后超时并回显 tumblr 已关闭 吗 而不是在近一分钟后超时
  • 等待CSS中的背景图像完全加载[重复]

    这个问题在这里已经有答案了 我有一个网络应用程序 它使用外部 CSS 中加载的外部背景图像 现在 可以在图像完全渲染之前使用该应用程序 从而产生奇怪的视觉效果 如何停止脚本执行直到图像完全加载 它可以使用普通的 JavaScript 或 j
  • 如何复制hashset和hashmap,Java是否使用指针?

    我有两个问题 First 我有一个返回 HashMap 的函数 为了读取返回值 我这样写 HashMap
  • Gradle 上传失败但仍部署到 Nexus

    您好 我的 gradle 构建失败了uploadArchives任务 但是当我检查Nexus时 WAR和POM仍然成功部署到Nexus 谁能帮助我了解发生了什么事 26 Jul 2016 18 46 28 compileGroovy UP
  • 用于从模式生成 URL 的 Java 库

    我想知道是否有任何免费的 Java 库可以自动执行以下过程 1 提供遵循特定模式的 URL 例如 http www asite com path to something thischange alsothischange andthisc