40 lines
1.4 KiB
Java
40 lines
1.4 KiB
Java
public class CommonPath {
|
|
public static String commonPath(String... paths){
|
|
String commonPath = "";
|
|
String[][] folders = new String[paths.length][];
|
|
for(int i = 0; i < paths.length; i++){
|
|
folders[i] = paths[i].split("/"); //split on file separator
|
|
}
|
|
for(int j = 0; j < folders[0].length; j++){
|
|
String thisFolder = folders[0][j]; //grab the next folder name in the first path
|
|
boolean allMatched = true; //assume all have matched in case there are no more paths
|
|
for(int i = 1; i < folders.length && allMatched; i++){ //look at the other paths
|
|
if(folders[i].length < j){ //if there is no folder here
|
|
allMatched = false; //no match
|
|
break; //stop looking because we've gone as far as we can
|
|
}
|
|
//otherwise
|
|
allMatched &= folders[i][j].equals(thisFolder); //check if it matched
|
|
}
|
|
if(allMatched){ //if they all matched this folder name
|
|
commonPath += thisFolder + "/"; //add it to the answer
|
|
}else{//otherwise
|
|
break;//stop looking
|
|
}
|
|
}
|
|
return commonPath;
|
|
}
|
|
|
|
public static void main(String[] args){
|
|
String[] paths = { "/home/user1/tmp/coverage/test",
|
|
"/home/user1/tmp/covert/operator",
|
|
"/home/user1/tmp/coven/members"};
|
|
System.out.println(commonPath(paths));
|
|
|
|
String[] paths2 = { "/hame/user1/tmp/coverage/test",
|
|
"/home/user1/tmp/covert/operator",
|
|
"/home/user1/tmp/coven/members"};
|
|
System.out.println(commonPath(paths2));
|
|
}
|
|
}
|