java - 将旧路径替换为新路径

标签 java

我在下面提到了完整路径字符串:

String originalpath = C:\test\sample\batchmatch\internal\a\b\a.pdf

我需要用新路径替换路径的第一部分

例如:

oldpath =  C:\test\sample\batchmatch\internal\to 
new path = C:\testdemo\sampledemo\batchmatchdemo\internal

我已经尝试过下面提到的方法,但它不起作用。

String newpath = originalpath.replaceAll(oldpath,newpath);

你能帮我一下吗?

class Demo {
    public static void main(String[] args) {
        String originalpath = C:\test\sample\batchmatch\internal\a\b\a.pdf;
        String oldpath =  C:\test\sample\batchmatch\internal\;
        String newpath = C:\testdemo\sampledemo\batchmatchdemo\internal;
        String relacepath = a.replaceAll(oldpath ,newpath);
        System.out.println("replacepath::"+ relacepath );
    }
}

最佳答案

无论您的平台如何(即 \/),这对您来说都应该有点灵活

    String oldPath =  "C:\\test\\sample\\batchmatch\\internal\\a\\b\\a.pdf".replaceAll("(\\\\+|/+)", "/");
    String newPath = "C:\\testdemo\\sampledemo\\batchmatchdemo\\internal".replaceAll("(\\\\+|/+)", "/");

    String partToKeep = "\\a\\b\\a.pdf".replaceAll("(\\\\+|/+)", "/");
    String partToReplace = oldPath.substring(0, oldPath.indexOf(partToKeep));

    String replacedPath = oldPath.replaceAll(partToReplace, newPath).replaceAll("(\\\\+|/+)", Matcher.quoteReplacement(System.getProperty("file.separator")));
    System.out.println(replacedPath);

关于java - 将旧路径替换为新路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43258123/

相关文章:

java - Spring AMQP 处理已删除的队列

java - 在 WebView 中选择元素并获取详细信息

java - NoSuchMethodError Arquillian 的 TestRunner.passed

Java命令行程序类路径问题

java - 在Java中,设计线性算法来查找具有最高总和的连续子序列

java - 通过 JavaFX 设置用户输入的值

java - 生成 32 位 dll JNI

Java char数组到String而不创建新对象

java - SearchView 的建议列表中没有分隔符

java - 如何在 Java 8 和 Java 9 中使用无符号整数?