Java有一个path连接方法吗?

完全重复:

在Java中结合path

我想知道在Java中是否有这样的方法。 以此片段为例:

// this will output a/b System.out.println(path_join("a","b")); // a/b System.out.println(path_join("a","/b"); 

对同一个问题引用一个很好的答案 :

如果您稍后希望将其作为string,则可以调用getPath()。 事实上,如果你真的想模仿Path.Combine,你可以写一些像:

 public static String combine (String path1, String path2) { File file1 = new File(path1); File file2 = new File(file1, path2); return file2.getPath(); } 

你可以做

 String joinedPath = new File(path1, path2).toString(); 

一种方法是获得系统属性,为操作系统提供path分隔符, 本教程将解释如何。 然后可以使用file.separator使用标准的string连接。

这是一个开始,我不认为它是按照你的意图完成的,但至less会产生一致的结果。

 import java.io.File; public class Main { public static void main(final String[] argv) throws Exception { System.out.println(pathJoin()); System.out.println(pathJoin("")); System.out.println(pathJoin("a")); System.out.println(pathJoin("a", "b")); System.out.println(pathJoin("a", "b", "c")); System.out.println(pathJoin("a", "b", "", "def")); } public static String pathJoin(final String ... pathElements) { final String path; if(pathElements == null || pathElements.length == 0) { path = File.separator; } else { final StringBuilder builder; builder = new StringBuilder(); for(final String pathElement : pathElements) { final String sanitizedPathElement; // the "\\" is for Windows... you will need to come up with the // appropriate regex for this to be portable sanitizedPathElement = pathElement.replaceAll("\\" + File.separator, ""); if(sanitizedPathElement.length() > 0) { builder.append(sanitizedPathElement); builder.append(File.separator); } } path = builder.toString(); } return (path); } }