如何用不同的斜杠替换String?

时间:2016-01-26 22:06:25

标签: java regex string split

我需要重命名数据库中的一些路径 我重命名文件夹:

String mainFolder= "D:\test\1\data"; //folder renamed from fd

然后我需要重命名该文件夹中的所有文件和目录:

    String file1="D:\test\1\fd\dr.jpg";
    String folder1="D:\test\1\fd\fd"; // in this case last fd needs to be renamed
    String folder2="src/fd/fd/"; //fake path also needs to be renamed

重命名字符串的最佳和最快方法是什么? 我对" /":

的想法
        String folder2= "src/da/da";
        String[] splittedFakePath = folder2.split("/");
        splittedFakePath[splittedFakePath.length - 2] = "data";

        StringBuffer newFakePath = new StringBuffer();
        for (String str : splittedFakePath) {
            newFakePath.append(str).append("/");
        }

重命名后的字符串:src/data/da/
但是当我试图通过" \":

分开时
Arrays.toString(Pattern.compile(File.separator).split(folder1));

我收到:

java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
\
 ^

1 个答案:

答案 0 :(得分:0)

查看java的String replace(...)方法。

更换字符串非常棒,比试用正则表达式要好得多。

请记住,真正的目录处理有一些特殊情况,它们不适合直接字符串操作。例如,'//'经常在Unix系统中被压缩为'/',如果你关心正确的目录转角情况,那么使用Java Path