Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 连接重叠的路径_Java_String_Path - Fatal编程技术网

Java 连接重叠的路径

Java 连接重叠的路径,java,string,path,Java,String,Path,在java中,我有一个字符串,如下所示: "c:\abc\def\ghi" 还有一个就是 "def\ghi\jkl.txt" 我怎样才能做到两者的交集呢 "c:\abc\def\ghi\jkl.txt" 编辑: 这些规则是: 将第一个字符串末尾的最大值替换为第二个字符串开头的最大值 例如 b\a\n\a\n\a和a\n\a\n\a\s结果应为b\a\n\a\n\a\s “c:\abc\def\ghi”加入“def\gji\jkl.txt”,我们有“c:\abc\def\ghi\def\

在java中,我有一个字符串,如下所示:

"c:\abc\def\ghi"
还有一个就是

"def\ghi\jkl.txt"
我怎样才能做到两者的交集呢

"c:\abc\def\ghi\jkl.txt" 
编辑:

这些规则是:

将第一个字符串末尾的最大值替换为第二个字符串开头的最大值

例如

  • b\a\n\a\n\a和a\n\a\n\a\s结果应为b\a\n\a\n\a\s
  • “c:\abc\def\ghi”加入“def\gji\jkl.txt”,我们有“c:\abc\def\ghi\def\gji\jkl.txt”

我只需查看第一个字符串,并检查它是否以第二个字符串的最大开头结束。为了加快速度,我检查了所有现有的反斜杠:

public static String join(String begin, String end) {
    for (int i = end.lastIndexOf("\\"); i >= 0; i = end.lastIndexOf("\\", i - 1)) {
        if (begin.endsWith(end.substring(0, i)) && begin.charAt(begin.length() - (i+1)) == '\\') {
            return begin + end.substring(i);
        }
    }
    return "strings dont contain same folder sequence";
}

您首先必须为连接定义适当的规则。例如,加入“def\gji\jkl.txt”的“c:\abc\def\ghi”会给你什么?特别是,加入
b\a\n\a\n\a
a\n\a\s
-应该是
b\a\n\a\s
还是
b\a\n\a\n\a\n\a\s
?事实上,这是同一条路,但我没有开始,所以我必须加入一条与otherRight开头相同的路径。你的评论并不比你原来的问题更清楚。因此,您需要准确地考虑规则是什么,然后更新您的问题以更清楚地表达它们。还要考虑到,可能存在与父文件夹同名的子文件夹。谢谢您的回答,所以在Java中没有预先制作的方法,至少我不知道。