gpt4 book ai didi

java - 在 Java 中使用正则表达式复制数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:32:19 26 4
gpt4 key购买 nike

我正在尝试将一个字符串数组复制到另一个字符串数组中。但是,副本必须仅包含原始数组的每个字符串的一部分。

例如,如果我们有

 String[] originalArray = {"/data/test2/", "/data/test4/", "/data/dropbox/test5/"}

我希望复制数组是

 String[] copyArray = {"test2", "test4", "test5"}

我的解决方案是简单地遍历原始数组并使用正则表达式获取 originalArray 中字符串的最后部分,并制作一个由这些值组成的 copyArray。

上述方法是否有效,或者是否有更有效的解决方案?另外,我会在这种情况下使用什么正则表达式?我这样做的方式似乎有点过于强行了。

理想情况下,我会手动创建 copyArray,但在这种情况下,originalArray 的大小和精确内容是未知的。

编辑:

这看起来微不足道,但出于某种原因它不起作用。

我添加了正则表达式。它似乎在测试仪中工作,但它没有像我希望的那样在程序中工作。我首先使用 | 将 originalArray 转换为 String附加到正则表达式。

String pattern = "/\\w+(?=\\||$)/g";
String testArray = originalArray.replaceAll(pattern," ");

然而,测试数组只是给我原始的连接字符串,没有应用正则表达式。

最佳答案

在 java 7 之前,您需要编写一个循环,但 java 8 引入了允许流畅的单行解决方案的流:

String[] names = Arrays.stream(originalArray)
.map(s -> s.replaceAll(".*/", ""))
.toArray();

重要的一点是 lambda expression将路径转换为名称,方法是使用正则表达式将包括最后一个斜杠在内的所有内容替换为空白(有效地删除它)。

关于java - 在 Java 中使用正则表达式复制数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26225593/

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