【发布时间】:2014-10-06 22:04:38
【问题描述】:
我正在尝试将一个字符串数组复制到另一个字符串数组中。但是,副本必须只包含原始数组的每个字符串的一部分。
例如,如果我们有
String[] originalArray = {"/data/test2/", "/data/test4/", "/data/dropbox/test5/"}
我希望复制数组是
String[] copyArray = {"test2", "test4", "test5"}
我的解决方案是简单地遍历原始数组并使用正则表达式来获取 originalArray 中字符串的最后一部分,并制作一个由这些值组成的 copyArray。
上述方法是否有效,或者是否有更有效的解决方案?在这种情况下,我还会使用什么正则表达式?我这样做的方式似乎有点太野蛮了。
理想情况下,我会手动创建 copyArray,但在这种情况下,originalArray 的大小和确切的内容是未知的。
编辑:
这似乎微不足道,但由于某种原因它不起作用。
我添加了正则表达式。它似乎在测试仪中工作,但它不像我在程序中想要的那样工作。我首先使用 | 将 originalArray 转换为字符串为正则表达式附加。
String pattern = "/\\w+(?=\\||$)/g";
String testArray = originalArray.replaceAll(pattern," ");
然而,测试数组只是给了我原始的连接字符串,而没有应用正则表达式。
【问题讨论】:
-
Java 8 在这个问题的范围内吗?
-
不幸的是它不是。 8 中有什么东西对此有用吗?
-
如果这些是文件路径,您也许可以使用
new File(pathname).getName()来提取路径的最后一部分,而不是使用正则表达式。虽然它的效率可能有点低。
标签: java arrays regex algorithm