gpt4 book ai didi

java - 如何从 Spring Cloud 中的 URL 中提取 jar 名称和文件名称?

转载 作者:行者123 更新时间:2023-11-30 10:02:09 25 4
gpt4 key购买 nike

最近在玩Spring Cloud。而我想从一个URL中提取出jar的名称和jar中的文件名。

例如,我有一个网址:

jar:file:/my/project/directory/target/my-project-0.0.1.BUILD-SNAPSHOT.jar!/BOOT-INF/classes!/filename.json

我想得到两个 String

/my/project/directory/target/my-project-0.0.1.BUILD-SNAPSHOT.jar

/BOOT-INF/classes/filename.json

请注意,在两个 String 中都没有 !。我怎样才能做到这一点?

这里的一个主要问题是 spring 将在 BOOT-INF/classes 之后添加 ! 并创建一个新的 Jar URL 分隔符。

最佳答案

使用split和分隔符!,然后合并结果

String s = "jar:file:/my/project/directory/target/my-project-0.0.1.BUILD-SNAPSHOT.jar!/BOOT-INF/classes!/filename.json";

String[] arr = s.split("!");
System.out.println(arr[0]);
System.out.println(arr[1]+arr[2]);

输出

jar:file:/my/project/directory/target/my-project-0.0.1.BUILD-SNAPSHOT.jar
/BOOT-INF/classes/filename.json

或者您也可以使用正则表达式将 jar! 上的字符串拆分为包含它的分隔符,然后将所有 ! 替换为空字符串

 String s = "jar:file:/my/project/directory/target/my-project-0.0.1.BUILD-SNAPSHOT.jar!/BOOT-INF/classes!/filename.json";

String[] arr = s.split("(?<=jar!)");
System.out.println(arr[0].replaceAll("!", ""));
System.out.println(arr[1].replaceAll("!", ""));

输出

jar:file:/my/project/directory/target/my-project-0.0.1.BUILD-SNAPSHOT.jar
/BOOT-INF/classes/filename.json

关于java - 如何从 Spring Cloud 中的 URL 中提取 jar 名称和文件名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57139580/

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